[英]Must I use -[UITableViewCell contentView] for uneditable cells?
我正在构建类似于本机iPhone Mail应用程序的撰写页面的内容。
但是,我将两个文本字段放在一行上,我想用垂直分隔线(另一个视图)将它们分隔开,该分隔线的颜色和重量与水平单元格分隔符相同。
苹果的文档说:
如果要通过简单地添加其他视图来自定义单元格,则应将其添加到内容视图中,以便在单元格进入和退出编辑模式时它们的位置适当。
但是,如果我像在这种情况下那样知道我的单元永远不会进入编辑模式,该怎么办?
同样,水平单元格分隔符是单元格的子视图,而不是单元格的内容视图。 因此,我认为将垂直分隔线添加到单元格而不是单元格的内容视图也很有意义。
我可以只向单元格本身添加其他视图,而不是向其内容视图添加吗?
您可以将其他视图直接添加到单元格中,但是最佳做法是将它们添加到单元格的内容视图中。 即使您的单元格从未进入编辑模式,这也是可能正在使用您的代码(或将来使用)的Apple和其他开发人员的期望。 因此,这将使他们更轻松地使用您的应用程序。
例如,如果苹果假设在将来的iOS版本中决定在普通样式表视图的左侧和右侧放置装订线,该怎么办? 然后,他们可能会插入单元格的内容视图,而不是单元格本身。 这样,如果您将其他视图相对于内容视图进行放置,则您的应用程序看起来更好的机会更大,而其他视图则更有可能不会被苹果的假想槽所限制。 好的,我怀疑苹果会做这样的事情,但是问题是,如果您将其他视图添加到单元的内容视图而不是单元本身,则代码将更加健壮。
对于您的特定情况,我仍然建议您将垂直分隔线添加到单元格的内容视图中,因为您可以这样做。 您甚至可以考虑设置tableView.separatorStyle = UITableViewCellSeparatorStyleNone
并通过在每个单元格内容视图的底部添加分隔符视图来重绘自定义分隔符。 这样,您可以确保添加的垂直分隔符的样式始终与分隔符的样式匹配。 同样,如果Apple决定更改其分隔符的样式,这将使您的代码更健壮并保护您。 当然,您可以使用cell.separatorColor
。 而且,您可以使用cell.frame.size.height - cell.contentView.frame.size.height
来猜测分隔符的重量。 但是,这样的机智可能会给您带来麻烦。
当佛陀告诫悉达多时,“当心聪明!”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.