2013-03-18 112 views
0

快速搜索后,我无法找到我的问题的答案。UITableViewCell编辑缩进

这个问题的答案:How to reformat a custom UITableViewCell 没有为我工作。

当我的tableView进入编辑模式时,单元格的subViews缩进到右侧并关闭单元格视图。请参阅附加的屏幕截图。

我需要减少缩进,以便它们移动但不超出cell。或者,当他们进入编辑模式时,单元的subViews向左移动一点,使它们保持在单元内。

我设计了这些UITableViewCellstoryboard。我改变了故事板中的缩进LevelWidth,但它们没有效果。

更新:新增截图答案之后,从氯化钠

普通模式: Normal mode

编辑模式:从氯化钠答案后 Edit mode

变化 After Answer from NaCl

+1

你有没有试图为标签和按钮的“自动调整大小”选项已经从右边距固定的距离?或者你使用Autolayout? – 2013-03-18 13:03:57

+0

@MartinR是在故事板中标记了自动调整大小。 – 2013-03-18 13:05:37

+0

@MartinR正如我刚才提到的一个问题,没有帮助,有类似的建议。请再次阅读该问题。 – 2013-03-18 13:07:02

回答

1

简单的方法就是在你的自定义单元格类 - 在layoutSubviews方法中调整你的cell.view.frame

if (self.isEditing) { 

// then shift cell frame to left side 
} 
else { 

// then shift cell frame to right side 
} 
+0

我试过这个,但是这造成了很多问题。方法layoutSubviews在单元格中的每个更改都会调用。因此,如果按下删除按钮,确认按钮出现,如果我没有确认(再次按下删除按钮“ - ”符号),子视图再次移动到左侧......并且在一些重复之后它创建一个混乱。 – 2013-03-18 12:31:12

+1

然后添加一个标志(isHavingIndetation),如果条件在上面的代码中使用这个标志。一旦你的单元得到了解释,将它设置为启用,所以下次不允许再次设置框架。当你的表格变得正常(完成buttton事件)时,再次禁用该标志。 – Mrunal 2013-03-18 13:07:40

+1

好吧!我添加了一个标志并设置了单元格的所有子视图的框架。现在它工作了。谢谢! – 2013-03-18 13:30:35

7

使用此

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return NO; 
} 
+0

我试过这个,现在单元格没有调整大小/缩进,但子视图(UILables + UIButtons)仍然缩进并退出了单元格边界。 – 2013-03-18 12:22:58