强制 UITableViewCell 在方向更改时保持对象右对齐
Posted
技术标签:
【中文标题】强制 UITableViewCell 在方向更改时保持对象右对齐【英文标题】:Force UITableViewCell to keep objects right-aligned on orientation change 【发布时间】:2011-03-28 22:27:06 【问题描述】:我有一个 UITableViewCell。 textLabel.text 设置为某个值。在单元格的子视图中,我添加了 UILabel、UIButton 或 UITextField(每个单元格中只有一个)。我使用 CGRectMake 添加这些视图,这意味着我必须指定 X 位置。
但是当我改变 iPad 的方向时,UITableViewCell 会拉伸,因此 UILabel、UIButton 或 UITextField 不再正确对齐。它向左偏了几个像素,这使它看起来很丑。
如何使右侧的对象保持右对齐,即使方向发生变化?
(如果您转到 iPad 的“设置”——查看右侧视图中的设置——任何方向都会发生变化,并且它们会粘在 UITableViewCell 的右端。这就是我想要的效果。)
【问题讨论】:
【参考方案1】:好的,想通了!只需将 UITableViewCell 的 accessoryView 属性设置为控件对象即可!
cell.accessoryView = the_control
无需纠结其他任何事情。我通过阅读ios Developer Library 中的 the Table View Programming Guide for the iOS 发现了这一点,我一开始就应该这样做 :-)
【讨论】:
我试图在 UITableViewCell 中对齐分组 UITableView 中的按钮。我一直试图在 contentView 中对齐它,但宽度只占用了这么多单元格。此外, UITableView 不提供水平边距。这解决了我的问题。无需对齐。谢谢!!! the_control 你的意思是 UIControl 元素,就像按钮一样。我明白了。【参考方案2】:您应该设置待粘合视图的autoresizingMask
属性,使其与右边缘保持固定距离。在 IB 中,这是点击式操作,在代码中,这是由
myview.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin
【讨论】:
从你的解释中我无法推断出你的视图的确切结构,但如果视图不是 tableviewcell 的直接子视图,你应该注意在它们之间设置视图的自动调整掩码。跨度>以上是关于强制 UITableViewCell 在方向更改时保持对象右对齐的主要内容,如果未能解决你的问题,请参考以下文章
在旋转时更改 UITableViewCell 中的文本对齐方式
我想在应用程序运行时更改应用程序的方向(仅限某些页面纵向和其他横向)