6

我在 iOS 7 中遇到UITableView(style: UITableViewStyleGrouped) 和separatorInset. 有时,分隔符不可见。

简而言之,如果我渲染表直接加载所有数据(例如来自 a ),则使用相同的表(完全相同的代码)NSArray,分隔线是正确的(默认 iOS7 样式,正确的插入值)。如果我使用 insertRowsAtIndexPaths 之类的东西动态地将新行添加到同一个表中,则分隔线会跨越单元格/屏幕的整个宽度(因此,没有 iOS7 默认样式)。

我试图在每个单元格setSeparatorInset中都强制使用“separatorInset” UITableView,但这没有用。如果我reloadData在添加新行后,分隔线会正确显示。但这似乎不是一个很好的解决方案。

任何想法为什么分隔符间歇性不可见?

4

5 回答 5

12

ViewDidLoad在您的方法中编写此代码:

[tblView setSeparatorInset:UIEdgeInsetsZero];
于 2013-12-12T14:09:53.290 回答
2

对我来说,唯一有效的是重新加载前一个单元格,即位于所选单元格顶部的那个单元格。

if (indexPath.row > 0) {
    NSIndexPath *path = [NSIndexPath indexPathForRow:indexPath.row - 1 inSection:indexPath.section];
    [tableView reloadRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationNone];
}
于 2014-05-20T15:25:49.883 回答
0

将此方法和此方法中的颜色应用到您的代码中。这是iOS7更新。

    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{

    [cell setBackgroundColor:[UIColor clearColor]];
}
于 2014-01-10T06:14:41.327 回答
0

用这个。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
   if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) {
        [tableView setSeparatorInset:UIEdgeInsetsZero];
   }
}
于 2014-03-11T13:32:01.163 回答
0

确保单元格的 clipsToBounds 设置为 YES,但单元格的 contentView 设置为 NO。还要设置 cell.contentView.backgroundColor = [UIColor clearColor];

于 2014-01-21T09:59:41.340 回答