【问题标题】:issue with rotation and uilabels with size set using NSString's sizeWithFont使用 NSString 的 sizeWithFont 设置大小的旋转和 uilabels 的问题
【发布时间】:2011-04-30 07:18:10
【问题描述】:

我的视图中有一些 UILabel,它们的高度使用 sizeWithFont: 设置。

我将 autoreszingMask 设置为灵活的宽度和高度,但是在旋转时宽度会发生变化(我假设是因为 self.view 的宽度发生了变化,并且它的宽度设置为相对于 self.view),但它的高度不会更改为再次适合内容。这会导致顶部和底部出现较大的空白。

只是想知道如何在旋转时重新调整 UILabel 的大小?是否有任何自动方法可以做到这一点,或者有没有办法在设备旋转时获取所有 UILabel 并重新执行sizeWithFont

UILabels 是 UIView 层次结构的子视图,用作我的 UITableView 中部分的标题。

谢谢 汤姆

【问题讨论】:

    标签: iphone uitableview uilabel autoresize autorotate


    【解决方案1】:

    您真的应该将sizeToFit 发送到任何 UIView,尤其是 UILabel,而不是强制它们具有任意大小。

    最好的办法通常是先设置最大宽度和当前高度,然后发送sizeToFit,必要时再调整宽度。在多行标签的情况下,它看起来是避免布局错误的最简单方法。

    【讨论】:

    • sizeToFit 会导致非常不合理的行为......你打算如何使用它?谢谢
    • 嗯...我真的不知道。它似乎只是选择了一个随机的宽度和高度,有时会截断文字,有时只是奇怪的高。旋转设备只会改变宽度。
    【解决方案2】:

    问题是在稍微偏移的 uilabel 上有灵活的左右边距。

    如果标签未居中,则需要选择左或右并为其中之一设置灵活边距。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 2010-11-05
      相关资源
      最近更新 更多