如何使动态高度 UILabel 将其他元素推开?

     2023-03-15     18

关键词:

【中文标题】如何使动态高度 UILabel 将其他元素推开?【英文标题】:How to make a dynamic height UILabel push other elements out of its way? 【发布时间】:2014-10-27 18:52:31 【问题描述】:

所以我有一个 UILabel,它正在从数据库中获取动态数量的内容。 它获得的内容越多,标签相应的高度就越高。

为了这个效果,我使用了这个代码:

NSString *infoztext = [dataBase valueForKey:@"infos"];
    infoz.text = infoztext;
    CGSize maxSize = CGSizeMake(320, 410);
    CGRect labrect = [infoztext boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@NSFontAttributeName:infoz.font context:Nil];
    infoz.numberOfLines = 0;
    infoz.frame = CGRectMake(23, 594, 274, labrect.size.height);

这就像一个魅力。标签将根据接收到的内容量调整其高度。

问题是我的标签与视图中位于其下方的所有元素重叠,而不是将它们推开。

我确实启用了自动布局,但除了重叠之外什么都没有发生。

如何让标签推送其他元素而不是重叠它们?

【问题讨论】:

要使自动布局起作用,您需要设置约束。您是否在任何地方设置了任何约束? (在 Interface Builder 或代码中) 我通常使用Interface Builder。我在 ScrollView 内的一个视图中拥有我的所有元素,例如标签和 UIImageViews。我在那里设置了约束。必须是使 ScrollView 与自动布局一起工作的最简单方法。在测试时,我刚刚选择了所有元素并设置了“添加缺少的约束”,但这也对我没有帮助。 如果我选择我的动态标签正下方的下一个元素并设置“添加缺失的约束”,结果是我的动态标签只会调整它自己的高度,直到它到达它下面的元素,这意味着它不会重叠它,但它也不会推动它。它只会调整它自己的高度,直到它到达另一个元素,而不是限制它自己的内容。就像元素阻止标签进一步调整它自己的高度一样。 【参考方案1】:

在界面构建器中,您可以选择一个元素(在本例中为 UILabel 正下方的元素)并在该标签上设置约束。在屏幕右下角附近的界面生成器中,有 4 个图标,选择中间有正方形的那个。您可以选择正方形和顶部文本字段之间的红色 I 形。选择之后,单击“添加约束”,即使在调整 UILabel 的大小后,您的应用也应保持这两个元素之间的间距不变。

注意:您还必须对 UILabel 下的所有元素执行此操作,否则您将在屏幕下方遇到同样的问题。

编辑:底部的四个图标是“对齐”、“固定”、“解决自动布局问题”和“调整大小行为”。约束所需的图标是“Pin”图标。点击它,红色的 I 应该在弹出的小窗口顶部附近。

【讨论】:

谢谢。您可能正在谈论的四个图标(从左到右)“对齐”、“固定”、“解决自动布局问题”和“调整大小行为”。据我所知,中间既没有正方形,也没有红色。它们都是单色的。 您正在寻找“Pin”图标,点击它,您应该会在小狗窗口顶部附近看到红色的 I 形状。 感谢 Victor,这让我更进一步。让我总结一下这是如何完成的: 1) 选择一个元素,如标签 2) 单击“pin” 3) 在新的弹出窗口中,有一个正方形,在它的所有四个方向上都有 4x 文本字段。有微小的红色笔触。您必须实际单击它们才能“激活”相关文本字段中的值。如果您单击文本字段旁边的下拉箭头,您还可以选择哪个其他元素应该是测量点。但是让我告诉你......我在动态标签下有 20 个元素,*ss 让它们全部工作很痛苦:(

如何使用自动布局将两个具有动态高度的 UILabel 与 UICollectionViewCell 的底部对齐

】如何使用自动布局将两个具有动态高度的UILabel与UICollectionViewCell的底部对齐【英文标题】:HowtoaligntwoUILabelswithdynamicheightstothebottomofaUICollectionViewCellusingautolayout【发布时间】:2015-07-1019:09:20【问题描述】:我有一个UICollectionViewC... 查看详情

如何仅使用情节提要使 UILabel 的 UIView 超级视图适合 UILabel 的固有高度?

】如何仅使用情节提要使UILabel的UIView超级视图适合UILabel的固有高度?【英文标题】:HowdoImaketheUIViewsuperviewofaUILabelfittheintrinsicheightoftheUILabelusingthestoryboardonly?【发布时间】:2018-03-2810:41:06【问题描述】:我有一个UIView,它的孩子... 查看详情

如何将 UIImage 设置为 UITableView Cell,它根据我在 UILabel 中输入的文本动态计算单元格高度?

】如何将UIImage设置为UITableViewCell,它根据我在UILabel中输入的文本动态计算单元格高度?【英文标题】:HowtosetUIImagetoUITableViewCellwhichcalculatescellheightdynamicallybasedontextIinputinUILabel?【发布时间】:2012-09-2105:18:20【问题描述】:我正... 查看详情

如何在没有固定高度的情况下使动态div溢出

】如何在没有固定高度的情况下使动态div溢出【英文标题】:Howtomakedynamicdivoverflowwithoutfixedheight【发布时间】:2019-04-2714:27:55【问题描述】:我正在尝试创建一个没有固定高度父级的滚动元素。我希望我的代码中的#SECTION1可以滚... 查看详情

无论文本如何,UILabel 都会将高度调整为 0

】无论文本如何,UILabel都会将高度调整为0【英文标题】:UILabelkeepsresizingtoaheightof0regardlessofthetext【发布时间】:2016-05-2502:18:59【问题描述】:我有一个具有以下约束的UILabel我将行数设置为0。IB上的布局如下所示。我希望这个UIL... 查看详情

如何动态计算 UILabel 高度 [重复]

】如何动态计算UILabel高度[重复]【英文标题】:HowdoIcalculatetheUILabelheightdynamically[duplicate]【发布时间】:2014-12-0908:44:31【问题描述】:我有以下代码:label.numberOfLines=0;//allowslabeltohaveasmanylinesasneededlabel.text=@"somelongtext";[labelsizeToFi 查看详情

UILabel 动态高度和 UIImageView 恒定高度

】UILabel动态高度和UIImageView恒定高度【英文标题】:UILabeldynamicheightwithUIImageViewConstantheight【发布时间】:2017-10-2910:59:09【问题描述】:在UITableViewCell中,我有一个图像视图和两个具有动态高度和按钮的标签,我使用自动布局约... 查看详情

iPhone:如何通过 UILabel 内容高度更改行高

】iPhone:如何通过UILabel内容高度更改行高【英文标题】:iPhone:HowtochangerowheightbyUILabel\'scontentheight【发布时间】:2011-08-1816:31:23【问题描述】:我想动态地将单元格的行高设置为UILabel的高度(即单元格的子视图)。难点在于UILabe... 查看详情

如何使用 UILabel 的高度正确增加 UITableViewCell

】如何使用UILabel的高度正确增加UITableViewCell【英文标题】:HowtoCORRECTLYincreaseUITableViewCellusingUILabel\'sheight【发布时间】:2017-10-1622:21:05【问题描述】:关于堆栈溢出的这个问题有很多答案,请知道我已经看过但所有解决方案都不... 查看详情

如何阻止翻转效果将其他元素推离它?

】如何阻止翻转效果将其他元素推离它?【英文标题】:HowcanIstopaflipeffectfrompushingotherelementsawayfromit?【发布时间】:2022-01-0902:24:12【问题描述】:在过去的两天里,我断断续续地对此表示不满。本质上,我的页面底部有一张“联... 查看详情

基于UILabel的UICollectionViewCell AutoLayout动态高度

】基于UILabel的UICollectionViewCellAutoLayout动态高度【英文标题】:UICollectionViewCellAutoLayoutdynamicheightbasedonUILabel【发布时间】:2015-04-2902:38:05【问题描述】:我正在使用UICollectionViewCell的自动布局和大小类。所以我们的想法是制作一个... 查看详情

如何根据元素高度动态调整 iframe 高度?

】如何根据元素高度动态调整iframe高度?【英文标题】:Howtoresizeiframeheightdynamicallybasedonelementheight?【发布时间】:2012-02-2715:55:41【问题描述】:我在与父/容器页面相同的域/协议内的iframe中加载一个aspx网页。iframe中的内容有时... 查看详情

使用动态高度将视图固定到底部

...ght【发布时间】:2016-09-2005:09:56【问题描述】:我有一个UILabel,它可以有可变数量的行数和高度。我想将这个标签固定到我的视图底部,如下所示:如果文本强制标签展开,我希望标签与视图底部保持相同的高度(大约显示一... 查看详情

当视图宽度发生变化时,如何使 UILabel 正确调整其尺寸?

】当视图宽度发生变化时,如何使UILabel正确调整其尺寸?【英文标题】:HowtomakeUILabelresizeit\'sdimensionscorrectlywhentheviewwidthchanges?【发布时间】:2017-10-1201:19:14【问题描述】:我有一个UILabel配置为根据文本长度自动调整多行的大小... 查看详情

如何滚动 UIlabel 文本并在目标 c 中动态设置它的宽度和高度

】如何滚动UIlabel文本并在目标c中动态设置它的宽度和高度【英文标题】:HowtoscrollUIlabelTextandsetitwidthandHightdynamicallyinobjectivec【发布时间】:2016-10-2609:47:47【问题描述】:我是iOS新手,滚动标签文本时遇到问题。我的代码能够滚... 查看详情

AutoLayout 将 UILabel 高度设置为零

】AutoLayout将UILabel高度设置为零【英文标题】:AutoLayoutsettingUILabelheighttozero【发布时间】:2015-08-2813:15:58【问题描述】:我有一个UILabel用于其他视图中的项目描述,所有这些都使用InterfaceBuilder中的约束进行布局-您可以在下图中... 查看详情

自定义单元格中的 UILabel 不会动态增加高度

】自定义单元格中的UILabel不会动态增加高度【英文标题】:UILabelincustomcellwillnotincreaseheightdynamically【发布时间】:2011-07-0203:16:18【问题描述】:我有一个包含3个UILabel的自定义单元格。最后一个标签将包含嵌入\\n的文本,以便该... 查看详情

如何将 uilabel 高度设置为 0。或 uitbleviewcell 高度设置为 0?

】如何将uilabel高度设置为0。或uitbleviewcell高度设置为0?【英文标题】:howtosetuilabelheightto0.oruitbleviewcellheightto0?【发布时间】:2015-12-2305:51:03【问题描述】:我有一个这样的页面现在,如果我得到任何值nil,我会隐藏该标签问题... 查看详情