如何正确定位右侧的UITableView单元格子视图?

所以我试图添加一个UISwitch到我右边的表格单元格中。 我第一次尝试将它添加到accesoryView ,但是当我在表中进入编辑模式时,UISwitch消失。 所以现在我把它添加到contentView ,它工作的很好,没有消失。 但它将其添加到左上angular。

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

所以我试着用这个代码:

[[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); 

但是,这是我得到:

在这里输入图像说明

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

您需要在交换机上设置适当的自动辨识掩码或布局约束。

如果您使用的是弹簧和支柱,则只需要开关具有灵活的左边距。 这将使其与您的超级视图的右侧边缘保持一个固定的距离 – 内容视图很可能会在添加切换器和出现在屏幕上之间resize。

设置这个掩码:

 switchView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; 

如果你使用自动布局(这使得不使用特定的帧值非常容易!),您需要将开关固定在超级视图的右边缘 – [switch]-| 以视觉格式。