强制UITableViewCell在方向改变时保持对象右对齐

3
我有一个UITableViewCell,textLabel.text被设置为某个值。在cell的子视图中,我添加了UILabel、UIButton或UITextField之一(每个单元格只添加一个)。我使用CGRectMake添加这些视图,这意味着我必须指定X位置。
但是当我改变iPad的方向时,UITableViewCell会拉伸,因此UILabel、UIButton或UITextField不再右对齐。它稍微偏左了几个像素,看起来很丑。
如何使右侧的对象保持右对齐,即使方向发生变化?
(如果您进入iPad的“设置”——查看右侧视图上的设置——任何方向的更改,它们都会粘在UITableViewCell的右端。这就是我想要的效果。)
2个回答

4

好的,我已经弄清楚了!你只需要将UITableViewCell的accessoryView属性设置为控件对象,它就可以正常工作!

cell.accessoryView = the_control

不需要纠结其他的东西。我通过阅读iOS的表视图编程指南iOS开发者库中了解到这一点,这本该是我首先要做的事情 :-)


我试图在分组的UITableView中的UITableViewCell内对齐一个按钮。我一直试图将其对齐到contentView中,但宽度只占了单元格的一部分。此外,UITableView没有提供水平边距。不过这个方法解决了我的问题。无需对齐。谢谢! - Matt Becker
你所说的“the_control”是指UIControl元素,比如按钮..我明白了。 - Simon

1

您应该设置要粘合的视图的autoresizingMask属性,使其与右边缘保持固定距离。在IB中,这是点-and-click,在代码中,可以通过以下方式完成:

 myview.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin

1
从您的解释中,我无法推断出您的视图的确切结构,但如果该视图不是表格视图单元格的直接子视图,则应注意设置它们之间的视图的自动调整掩码。 - mvds

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接