动态大小的 UILabel 直接跟在 UIButton 后面
Posted
技术标签:
【中文标题】动态大小的 UILabel 直接跟在 UIButton 后面【英文标题】:Dynamically Sized UILabel Followed Directly by UIButton 【发布时间】:2014-03-25 19:23:56 【问题描述】:如何将 UIButton 放置在动态 UILabel 的末尾?
这是我想要实现的截图:
【问题讨论】:
标签的所有文字都在 1 行吗? 【参考方案1】:您在使用自动布局吗?如果是这样,请在标签和按钮之间添加水平间距约束和基线对齐约束。还要确保标签的行数为 0。
【讨论】:
如果有时标签是按钮直接跟随的半行(在同一行上),但有时该行是 1.5 行要直接跟随同一个按钮,这将如何工作。 水平间距意味着无论标签的宽度如何,它都会以您定义的常数“粘”在按钮上。 问题是如果我将标签的行数设置为 0,它会根据情节提要中标签的大小创建尽可能多的行。如果文本每次都只有一行,那很好,但事实并非如此。我怎样才能使标签尽可能长,尽可能多的行以适应文本,但在它结束的地方紧跟按钮。不管它是在第一行还是第五行结束? 我不明白问题,请附上所需结果的屏幕截图。 我添加了一张图片,展示了我想要实现的目标。【参考方案2】:试试
[your_label sizeToFit];
CGRect rect = your_button.frame;
rect.origin.x = CGRectGetMaxX(your_label.frame);
your_button.frame = rect;
【讨论】:
当我使用这个按钮消失。 这段代码前后标签和按钮有哪些框架?【参考方案3】:我会覆盖-[UIView layoutSubviews]
并在那里做你想做的事。一旦你这样做了,代码将看起来像 Avt 的答案。如果您希望标签有多行,但宽度受限,您可能想尝试类似
CGSize labelSize = [yourLabel sizeThatFits:CGSizeMake(someWidth, 9999)];
并使用它来设置标签的框架。
【讨论】:
【参考方案4】:如果您希望按钮出现在 UILabel 的底部,请使用约束。
【讨论】:
以上是关于动态大小的 UILabel 直接跟在 UIButton 后面的主要内容,如果未能解决你的问题,请参考以下文章