uitableviewcell分隔线不以全宽显示

时间:2015-12-22 14:40:14

标签: ios iphone uitableview

我正在尝试显示UITableview自定义单元格。但是我的tableview分隔符没有按预期显示。我附上了截图。

enter image description here

我尝试制作UIEdgeInsetZero,但它没有奏效。任何人都可以帮我解决这个问题。

5 个答案:

答案 0 :(得分:2)

separatorInset设置为UIEdgeInsetZero对于iOS 8来说还不够。您还应该将表格和单元格的layoutMargins属性设置为UIEdgeInsetZero

答案 1 :(得分:1)

enter image description here

请按自定义更改分隔符插件。感谢。

答案 2 :(得分:0)

嘿所有我得到了解决方案。

我在Custom UITableViewCell中覆盖layoutSubviews,分隔符显示正确。

- (void)layoutSubviews {
[super layoutSubviews];

for (UIView *subview in self.contentView.superview.subviews) {
    if ([NSStringFromClass(subview.class) hasSuffix:@"SeparatorView"]) {
        subview.hidden = NO;
    }
} }

答案 3 :(得分:0)

试试这个:

cell.layoutMargins = UIEdgeInsetsZero;

cell.preservesSuperviewLayoutMargins = NO;

答案 4 :(得分:0)

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Remove seperator inset
    if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
        [cell setSeparatorInset:UIEdgeInsetsZero];
    }

    // Prevent the cell from inheriting the Table View's margin settings
    if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
        [cell setPreservesSuperviewLayoutMargins:NO];
    }

    // Explictly set your cell's layout margins
    if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
        [cell setLayoutMargins:UIEdgeInsetsZero];
    }
}