在旋转时更改 UITableViewCell 中的文本对齐方式

Posted

技术标签:

【中文标题】在旋转时更改 UITableViewCell 中的文本对齐方式【英文标题】:Change Text Alignment in UITableViewCell On Rotate 【发布时间】:2014-09-22 20:29:11 【问题描述】:

我正在使用大小调整类将两个 xib 文件(iPhone 与 iPad)合二为一。大多数方向在 UITextView 上方都有一个 2x2 的 UILabel 网格。但是,对于 iPhone 肖像,我希望 UILabel 垂直堆叠。我在调整课程大小方面效果很好。然而,我很失望地看到,大小调整类不允许更改文本对齐方式。参考我下面的图表。在主要方向上,我将黄色和蓝色 UILabel 中的文本右对齐。在 iPhone 纵向方向中,我希望相同的 UILabel 具有左对齐的文本。如果用户在查看这些表格单元格时旋转设备,我该如何更改?我认为有比重新加载表格更好的方法。

【问题讨论】:

【参考方案1】:

我认为无法根据屏幕方向或设备设置文本对齐方式。但是,您可以创建 2 个标签,一个带有左对齐文本,另一个带有您正在使用的任何其他标签,它们是您正在使用的屏幕布局所独有的。 IE。 iPhone 一个标签,其他所有标签一个标签。

然后,您可以为情节提要中的 UILabel 对象选择要安装的屏幕布局。

【讨论】:

我考虑过这样做。但是 UILabel 是 IBOutlet,我不知道如何将两个 UILabel(将显示相同的信息)连接到同一个 IBOutlet。 在同一个 xib 中,没有办法为两个视图设置一个 IBOutlet,即使它们是不同大小的类。我必须为每个视图创建一个 IBOutlet,这是多余的。似乎应该有一个更简单、更优雅的解决方案。 我同意应该有一个更优雅的解决方案。我自己做了一些研究,我找不到任何可以说这是为“仅故事板”解决方案实现的 - 有时我们仍然必须做出让步并为视图编写代码(查找滚动视图 + 自动布局,这是一个非常有名的) .您不能将 1 个 IBOutlet 连接到多个视图。但是,如果在情节提要中构建所有视图有意义,那么在某个时间设置多个 IBOutlet 标签文本可能会更智能。我正在投票赞成你的问题 - 这是一个很好的问题,我很乐意看到解决方案

以上是关于在旋转时更改 UITableViewCell 中的文本对齐方式的主要内容,如果未能解决你的问题,请参考以下文章

旋转 UITableViewCell

自定义 UITableViewCell 中的 UIButton 在旋转后停止工作

在运行时无法更改和自定义自定义 UITableViewCell 中的 UIButtons 的标题

在Swift中旋转设备时iOS 8 uitableviewcell高度发生变化

UITableViewCell 中的旋转 UITableView 未显示 initWithFrame: 的位置

UITableViewCell 内的 UIImageView 旋转动画