【问题标题】:UILabel doesn't fully resize using Auto LayoutUILabel 没有使用自动布局完全调整大小
【发布时间】:2015-04-11 11:07:52
【问题描述】:

我在使用带有 UILabel 的 Auto Layout 时遇到了一个奇怪的问题,它在 iphone 4s/5/5s 中几乎调整到其内容大小减去一行(让我发疯)(它在 6/6+ 上运行良好)

这是我的故事板设置,我已经明确设置了首选宽度

我尝试在UITableViewCell 类中添加代码

self.describe.preferredMaxLayoutWidth = self.describe.frame.size.width

但问题依然存在

这是我的问题

编辑

这是我的身高

self.address.preferredMaxLayoutWidth = CGRectGetWidth(self.address.bounds)
self.describe.preferredMaxLayoutWidth = CGRectGetWidth(self.describe.bounds)

self.address.text = data.address == nil ? "no data" : data.address
self.describe.text = data.describe == nil ? "no data" : data.describe

self.layoutIfNeeded()
self.updateConstraintsIfNeeded()

return self.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height

情节提要中名为“地址”的标签(您可以在此问题的第一张图片中找到它)工作正常

【问题讨论】:

  • 描述标签,行数设置为0?
  • @JavierFloresFont 当然
  • 你用什么代码来设置单元格的高度?

标签: ios autolayout uilabel


【解决方案1】:

试试这个对你有帮助

YourCell.m

- (void)layoutSubviews
{
    [self.contentView updateConstraintsIfNeeded];
    [super layoutSubviews];
    [self.contentView layoutIfNeeded];
    CGFloat width = [UIScreen mainScreen].bounds.size.width - 60;//your desire width
    self.yourLAbel.preferredMaxLayoutWidth = width;
}

编辑:

请点击此链接,它可能对您有所帮助

Dynamic Cells

或者试试

awakefromnib 方法中的yourCell.m

- (void)awakeFromNib
{
    [super awakeFromNib];
    [self setNeedsUpdateConstraints];
    [self updateConstraintsIfNeeded];
}

编辑 - 2

你的换行模式是什么,应该是

编辑:3

如果您对 UILable 使用高度限制,那么您应该为高度 autoLayout 提供“大于或等于”关系,请为您修改高度。

【讨论】:

  • 问题依然存在,谢谢您的回答
  • @jansma 你在为 UILabel 使用高度约束吗?
  • 是的,我试过了,我将高度限制设置为 14 并给予 250 优先级@Vishu
  • @jansma 不修改优先级。我的意思是说关系。我在回答中提供了图像描述。请看。
  • 和之前@Vishu 一样
【解决方案2】:

如果我正确理解了您的问题,那么您对自动布局没有任何问题。您可以通过自动布局告诉您的标签使用您想要的宽度和高度。但是,您可能想检查标签中允许的行数。

如果您查看情节提要中的尺寸检查器,您可以通过在“行”字段中指定数字来指定要显示的行数。如果它是“0”,那么这意味着你的标签可以接受所有的内容,但是如果你为你的标签设置了一个大小,你可能会遇到麻烦。因此,某些内容将被截断。现在,您可以将属性检查器中的“Lines”字段设置为零并设置宽度和高度,或者您可以指定它应该允许的行数并再次使用自动布局设置大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-19
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多