为什么不能直接将UIView添加到UITableViewCell而是contentView

时间:2016-03-17 10:04:29

标签: ios uitableview

我从来没有想过这个问题可能是愚蠢的。

[cell.contentView addsubview:xxxView];

[cell addsubview:xxxView];

Apple称contentView应该是内容的默认超级视图。如果我直接向cell添加子视图,只想知道是否有任何不良。

Apple文档:

  

UITableViewCell对象的内容视图是单元格显示的内容的默认超级视图。如果您想通过简单地添加其他视图来自定义单元格,则应将它们添加到内容视图中,以便在单元格进入和退出编辑模式时将它们正确定位。

1 个答案:

答案 0 :(得分:2)

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7-SW1

默认情况下,编辑控件将被隐藏,直到您进入表格的编辑模式,在这种情况下,出现编辑控件(每行左侧的减号按钮),并且您的contentView会调整大小并向右推。这可能是“适当的动画”效果。

要测试差异,请尝试向单元格而不是cell.contentView添加子视图(如带文本的UILabel)。当你将它添加到单元格而不是cell.contentView并且你进入你的表的编辑模式时,我相信你的UILabel不会调整大小,你会在减号按钮上方/下方看到编辑按钮。