如何正确定位UITableView单元子视图?

时间:2013-08-26 07:06:11

标签: ios objective-c uitableview

所以我试图在右边的表格单元格中添加一个UISwitch。 我首先尝试adding it to the accesoryView,但当我进入表格中的编辑模式时,UISwitch消失了。 所以现在我added it to the contentView,工作得很好,没有消失。但它将它添加到左上角。

所以我试图将它添加到右边,但我想远离绝对值以支持所有尺寸和方向。

所以我正在尝试使用此代码:

[[cell contentView] addSubview:switchView];
switchView.frame = CGRectMake(cell.contentView.frame.size.width - 
                                    switchView.frame.size.width, 
                              0,
                              switchView.frame.size.width, 
                              switchView.frame.size.height);

但这就是我所得到的:

enter image description here

任何想法我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您需要在交换机上设置适当的自动调整遮罩或布局约束。

如果您使用弹簧和支柱,您希望开关仅具有灵活的左边距。这将使其与超级视图的右侧边缘保持固定距离 - 内容视图很可能在您添加开关和出现在屏幕上之间调整大小。

设置此掩码:

switchView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; 

如果您正在使用自动布局(这使得不使用特定的帧值非常容易!),您需要将交换机固定在超级视图的右边缘 - [switch]-|,以可视格式显示。