10

我有一个 UITableView,在 ios6 中,我的自定义单元格完全伸展到屏幕的左侧和右侧。所以我在牢房左侧的方形图像很难贴在手机屏幕上。

但是,现在在 ios7 中,左侧出现了一个小间隙,因此图像现在远离侧面并与单元格内的文本略微重叠。

这似乎也发生在我现在在 ios7 中查看的其他应用程序中——所有应用程序的左侧和右侧都有一个间隙。

根据 Interface Builder,我的自定义单元格设置为 320 的大小 - ios 7 没有改变这个有吗?

4

6 回答 6

23

iOS7 增加了一个separatorInset属性。

尝试将此添加到您的UITableViewController

if ([self.tableView respondsToSelector:@selector(separatorInset)]) {
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
于 2013-09-27T19:54:58.847 回答
3

这对我来说很完美:

-(void)viewDidLayoutSubviews
{
    if ([self.Video_TableVIEW respondsToSelector:@selector(setSeparatorInset:)]) {
        [self.Video_TableVIEW setSeparatorInset:UIEdgeInsetsZero];
    }

    if ([self.Video_TableVIEW respondsToSelector:@selector(setLayoutMargins:)]) {
        [self.Video_TableVIEW setLayoutMargins:UIEdgeInsetsZero];
    }
}

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

    if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
        [cell setLayoutMargins:UIEdgeInsetsZero];
    }
}
于 2014-12-11T06:52:47.790 回答
3

我更喜欢自己制作分隔符。感觉比使用 tableview 设置更简单。只需将分隔符设置为 none,将单元格子类化并在 init 中执行此操作。

-(id)initWithCoder:(NSCoder *)aDecoder{
    self = [super initWithCoder:aDecoder];
    if(self){

        UIView *seperator = [[UIView alloc] init];
        [seperator setBackgroundColor:[UIColor blackColor]];
        seperator.frame = CGRectMake(0, self.bounds.size.height-1, self.bounds.size.width, 1);
        [seperator setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth];
        [self.contentView addSubview:seperator];

    }
    return self;
}
于 2013-10-24T13:25:07.677 回答
2

将图像添加到cell.contentView修复问题:

[cell.contentView addSubview:imgView];

这样你甚至不必介意separatorInset财产。

于 2013-10-06T12:00:57.263 回答
1

对于那些在 c# 中使用 Xamarin/MonoTouch 的人

tableView.SeparatorInset = UIEdgeInsets.Zero;
于 2013-10-23T16:38:44.530 回答
0
 override func viewDidLoad() {
    super.viewDidLoad()

    tableView.cellLayoutMarginsFollowReadableWidth = false
 }
于 2016-06-01T05:39:58.170 回答