防止 UITableViewCell 的 textLabel 框架因设备旋转而更改

发布于 2024-12-21 20:28:46 字数 544 浏览 2 评论 0原文

我有一个简单的 UITableViewController 子类,其中包含一些 UITableViewCell 。我在每个单元格上使用 imageView 和 textLabel 。

当我将设备旋转到纵向/横向时,文本标签的框架会发生变化。这种变化对于纵向到横向旋转来说是很好的。然而,当从横向旋转回纵向时,框架会更改为“不正确”值(文本对齐不当)。

我该如何解决这个问题?

我在 imageViews 的框架发生变化时遇到了类似的问题。我通过子类化 UITableViewCell 并将框架设置为 layoutSubviews 中的正确值解决了这个问题。这里我只需要记住一个 CGRect 值(我只是对其进行硬编码)。

textLabel 是不同的:我需要跟踪两个框架(每个方向一个),并且我认为框架值将取决于 textLabel 的文本。因此,向我的 UITableViewCell 子类添加两个 CGRect 实例变量是一种选择。不过我想有一个更简单的解决方案。

I have a simple UITableViewController subclass with a few UITableViewCells. I'm using the imageView and textLabel on each cell.

When I rotate the device to/from portrait/landscape the frame of the textLabel changes. The change is fine for portrait to landscape rotation. However when rotating back to portrait from landscape the frame changes to an "incorrect" value (text is justified inappropriately).

How can I solve this?

I had a similar issue with the imageViews' frames changing. I solved this by subclassing UITableViewCell and setting the frame to the correct value in layoutSubviews. Here there is only one CGRect value that I need to remember (and I just hardcode it).

The textLabel is different: I'd need to keep track of two frames (one for each orientation) and I think the frame values would depend on the textLabel's text. So adding two CGRect instance variables to my UITableViewCell subclass is an option. However I imagine there's a simpler solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

破晓 2024-12-28 20:28:46

问题是 cellForRowAtIndexPath 中的 cell.textLabel.numberOfLines = 0;。将 numberOfLines 设置为 3 解决了这个问题。

我还必须将 self.textLabel.frame.origin.x 设置为layoutSubviews 中的硬编码值。

不确定我是否完全理解这里发生的事情。

Problem was cell.textLabel.numberOfLines = 0; in cellForRowAtIndexPath. Setting numberOfLines to three solved the problem.

I also had to set self.textLabel.frame.origin.x to a hardcoded value in layoutSubviews.

Not sure if I completely understand what's happeing here.

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