使用 NSString 的 sizeWithFont 设置尺寸的旋转和 uilabel 问题

发布于 2024-09-28 19:13:47 字数 385 浏览 8 评论 0原文

我的视图中有一些 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谎言月老 2024-10-05 19:13:47

您确实应该将 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.

冬天旳寂寞 2024-10-05 19:13:47

问题是在稍微偏移的 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文