【问题标题】:iOS7 last cell in UITableView section forces full width separatoriOS7 UITableView 部分中的最后一个单元格强制全宽分隔符
【发布时间】:2013-10-01 13:41:40
【问题描述】:

下面的UITableView 有自定义UITableViewCells,我可以使用自定义UITableViewCell 中的这一行来微调分隔符:

self.separatorInset = UIEdgeInsetsMake(0, kDefaultSeparatorLeftInset, 0, 0);

但是,该部分底部的单元格有一个默认分隔符,它覆盖了我设置的自定义 UIEdgeInsets

我希望所有分隔符的宽度相同,有没有办法在不手动重绘分隔符的情况下做到这一点?

【问题讨论】:

    标签: ios objective-c uitableview


    【解决方案1】:

    经过一些实验,我发现唯一真正的解决方案是将 UITableViewStyle 设置为 UITableViewStylePlain 并使用以下方法设置空页脚:

    -(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
    {
        return [[UIView alloc] initWithFrame:CGRectZero];
    }
    
    -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
    {
        return 0.01f;
    }
    

    这对某些人来说不是一个令人满意的解决方案,因为UITableViewStylePlain 没有提供UITableViewStyleGrouped 的所有功能,但它给了我没有全角分隔符的部分。

    【讨论】:

    • 这是一个不错的解决方案,但我更喜欢隐藏默认分隔符并在表格单元格的底部添加一个 1px 的视图。
    • 我有同样的情况,直到我点击最后一个单元格。点击最后一个分隔符后再次全宽并在代码[self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 0)] 中更改它没有帮助。有什么解决办法吗?
    • 似乎viewForFooterInSection 实际上是不必要的。将 .01f 返回为 heightForFooterInSection 似乎可以解决问题。没有更多的悬空分隔符!
    【解决方案2】:

    经过一些实验,我找到了解决方案! tableFooterView 可以像这样覆盖分隔符:

    UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
    UIView *v2 = [[UIView alloc] initWithFrame:CGRectMake(0, -1, 320, 2)];
    v2.backgroundColor = [UIColor whiteColor];
    v.backgroundColor = [UIColor whiteColor];
    [v addSubview:v2];
    self.tableView.tableFooterView = v;
    

    【讨论】:

    • 这对我有用!我还在 viewForFooterInSection 中返回了“v”。谢谢!
    【解决方案3】:

    在 tableView 本身上使用 separatorInset 属性,而不是在单个单元格上。 tableView 的 separatorInset 设置了默认的 inset,可以被单元格覆盖,以及底部“额外”单元格的 inset。

    【讨论】:

    • 不幸的是,在 iOS7 中更改 tableView 的 separatorInset 不会影响每个部分开头和结尾的分隔符。这些似乎永久填充了 tableView 的宽度。更改 separatorInset 只会影响中间分隔符。
    【解决方案4】:

    给表格一个空的页脚:

    self.tableFooterView = [[UIView alloc] init]
    

    【讨论】:

    • 我不明白人们如何不使用它。当其他方法给我带来这么多问题时,这完美无缺
    猜你喜欢
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    相关资源
    最近更新 更多