【问题标题】:Dynamically Sized UILabel Followed Directly by UIButton动态大小的 UILabel 直接跟在 UIButton 后面
【发布时间】:2014-03-25 19:23:56
【问题描述】:

如何将 UIButton 放置在动态 UILabel 的末尾?

这是我想要实现的截图:

【问题讨论】:

  • 标签的所有文字都在 1 行吗?

标签: ios objective-c uibutton uilabel


【解决方案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 的底部,请使用约束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多