我正在构建类似于本机iPhone Mail应用程序的撰写页面的内容。
但是,我在一行上放了两个文本字段,我想用垂直分隔符(另一个视图)将它们分开,它们的颜色和颜色相同。作为水平细胞分离器的重量。
Apple的文档说:如果您想通过简单地添加其他视图来自定义单元格,则应将它们添加到内容视图中,以便在单元格进入和退出编辑模式时将它们正确定位。
但是,如果我知道,如果在这种情况下,我的单元格将永远不会进入编辑模式怎么办?
此外,水平单元格分隔符是单元格的子视图,而不是单元格的内容视图。所以,我认为如果我将垂直分隔符添加到单元格而不是单元格的内容视图中也是有意义的。
我可以向单元格本身添加其他视图,而不是其内容视图吗?
答案 0 :(得分:0)
您可以直接向单元格添加其他视图,但最佳做法是将它们添加到单元格的内容视图中。即使您的单元格从未进入编辑模式,这也是Apple和其他可能正在处理您的代码(或您将来)的开发人员所期待的。因此,这将使他们更容易使用您的应用。
例如,如果苹果假设决定将排水沟放在左边,那该怎么办呢? iOS未来版本中普通样式表视图的右侧?然后,他们可能会插入单元格的内容视图而不是单元格本身。这样,如果您将其他视图相对于内容视图进行定位,您的应用程序就有更好的机会看起来很好,并且其他视图更有可能不被Apple假设的排水沟削减。好吧,我怀疑Apple会做这样的事情,但关键是如果你将额外的视图添加到单元格的内容视图而不是单元格本身,那么你的代码将更加健壮。
对于您的具体情况,我仍然建议您将垂直分隔符添加到单元格的内容视图中,因为您可以。您甚至可以考虑设置tableView.separatorStyle = UITableViewCellSeparatorStyleNone
并重新绘制自定义分隔符,方法是在每个单元格内容视图的底部添加分隔符视图。这样,您可以确保添加的垂直分隔线的样式始终与分隔符的样式匹配。同样,如果Apple决定更改其分隔符的样式,这将使您的代码更加健壮并保护您。当然,您可以使用cell.separatorColor
。并且,您可以使用cell.frame.size.height - cell.contentView.frame.size.height
猜测分隔符权重。但是,这样的聪明可能会让你陷入困境。
当佛陀谴责悉达多时,“要小心聪明!”