0

我正在构建类似于原生 iPhone 邮件应用程序的撰写页面的东西。

但是,我将两个文本字段放在一行上,并且我想用与水平单元格分隔符相同的颜色和重量的垂直分隔符(附加视图)将它们分隔开。

苹果的文档说:

如果您想通过简单地添加额外的视图来自定义单元格,您应该将它们添加到内容视图中,以便在单元格进入和退出编辑模式时适当地定位它们。

但是,如果我知道,就像在这种情况下,我的单元格永远不会进入编辑模式怎么办?

此外,水平单元格分隔符是单元格的子视图,而不是单元格的内容视图。所以,我认为如果我将垂直分隔线添加到单元格,而不是单元格的内容视图,这也是有意义的。

我可以只向单元格本身添加其他视图,而不是其内容视图吗?

4

1 回答 1

0

您可以将其他视图直接添加到单元格中,但最好将它们添加到单元格的内容视图中。即使您的单元格永远不会进入编辑模式,这也是 Apple 和其他可能正在处理您的代码(或将来的您)的开发人员所期望的。因此,这将使他们更容易使用您的应用程序。

例如,如果 Apple 假设在未来的 iOS 版本中决定在普通样式表视图的左侧和右侧放置排水沟怎么办?然后,他们可能会插入单元格的内容视图,而不是单元格本身。这样,如果您相对于内容视图定位附加视图,则您的应用程序更有可能看起来不错,并且附加视图更有可能不会被 Apple 假设的排水沟截断。好的,我怀疑 Apple 会做这样的事情,但关键是,如果您将附加视图添加到单元格的内容视图而不是单元格本身,那么您的代码将更加健壮。

对于您的具体情况,我仍然建议您将垂直分隔线添加到单元格的内容视图中,因为您可以。您甚至可以考虑tableView.separatorStyle = UITableViewCellSeparatorStyleNone通过在每个单元格内容视图的底部添加分隔符视图来设置和重绘自定义分隔符。这样,您可以确保您添加的垂直分隔线的样式将始终与分隔符的样式相匹配。同样,如果 Apple 决定更改其分隔符的样式,这将使您的代码更加健壮并保护您。当然,您可以使用cell.separatorColor. 而且,您可以使用 来猜测分隔符的权重cell.frame.size.height - cell.contentView.frame.size.height。但是,这样的聪明可能会给你带来麻烦。

正如佛陀告诫悉达多:“谨防太聪明!”

于 2013-09-25T05:22:54.830 回答