删除separatorInset后对齐UITableViewCell textLabel

时间:2015-10-05 22:54:03

标签: ios uitableview uiedgeinsets

我已经实现了类似于日历应用实现方式的在线日期选择器,您点击UITableViewCell并展开其下方包含UIDatePicker的下一个单元格。现在我有一个日期选择器作为一个部分的最后一行,所以默认情况下separatorInset不在0上面的行,因为它下面有另一个隐藏的单元格。因此,我需要通过将其设置为UIEdgeInsetsZero来删除分隔符。但是,您还必须删除iOS 8中添加的单元格的layoutMargins,以便将分隔线移动到表格的最左侧。在这样做之后,单元格textLabel不再与其他单元格对齐'文字标签 - 它被渲染得太远了。

那么如何将分隔线设置为仅在一个单元格的表格最左侧开始,同时保持其文本标签与其他单元格对齐?请注意,我使用了Right Detail单元格样式。

self.endTimeCell.separatorInset = UIEdgeInsetsZero
self.endTimeCell.layoutMargins = UIEdgeInsetsZero

enter image description here

1 个答案:

答案 0 :(得分:0)

一种选择是从所有单元格中移除边距,以便它们都与该特定单元格对齐,而不是尝试使一个单元格与其他单元格对齐。这可以通过将整个表格的layoutMargins设置为UIEdgeInsetsZero来完成。这可能并不理想,但确实对齐了所有细胞。

self.tableView.layoutMargins = UIEdgeInsetsZero
self.endTimeCell.separatorInset = UIEdgeInsetsZero
self.endTimeCell.layoutMargins = UIEdgeInsetsZero