使用 NSString 的 sizeWithFont 设置尺寸的旋转和 uilabel 问题
我的视图中有一些 UILabel,其高度使用 sizeWithFont:
设置。
我将 autoreszingMask 设置为灵活的宽度和高度,但是在旋转时宽度会发生变化(假设因为 self.view 的宽度发生变化并且其设置相对于 self.view 的宽度),但它的高度不会改变以适应内容再次。这会导致顶部和底部出现较大的空白区域。
只是想知道我将如何在旋转时重新调整 UILabel 的大小?是否有任何自动方法可以执行此操作,或者是否可以在设备旋转时获取所有 UILabels 并重新执行 sizeWithFont
?
UILabels 是 UIView 层次结构的子视图,用作 UITableView 中各部分的标题。
谢谢 汤姆
I have a few UILabels in my view with their height set using sizeWithFont:
.
I set the autoreszingMask to flexible width and height, however on rotate the width changes (am assuming because self.view's width changes and its set with a width relative to self.view) but the height of it doesn't change to fit the content again. This results in a large white space at the top and bottom.
Just wondering how I would go about re-sizing the UILabel on rotation? Is there any automatic way of doing this, or is there a way of getting all UILabels and re-doing sizeWithFont
when the device is rotated?
The UILabels are subviews of UIView heirarchies used as headers for sections in my UITableView.
Thanks
Tom
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您确实应该将
sizeToFit
发送到任何 UIView,尤其是 UILabel,而不是强制它们使用任意大小。最好的方法通常是首先设置最大宽度和当前高度,然后发送
sizeToFit
,然后在必要时再次调整宽度。对于多行标签,它看起来是避免布局错误的最简单的方法。You should really send
sizeToFit
to any UIView, especially UILabel, instead of forcing some arbitrary size on them.The best approach is usually to first set the maximum width and current height, then send
sizeToFit
, then adjust the width again if necessary. In case of multiline labels it looks like the most foolproof way to avoid layout bugs.问题是在稍微偏移的 uilabel 上有灵活的左右边距。
如果标签未居中,则您需要选择向左或向右,并为其中之一设置灵活边距。
The problem was having a flexible left and right margin on a slightly offset uilabel.
If the label isn't centered then you need to choose left or right and set the flexible margin for one of those.