提问者:小点点

如何在Swift中移除左边的UITableView偏移


我找到了一些问题和答案来删除ios7中UITableView的偏移量,即这里的这个问题。如何在iOS 7上修复UITableView分隔符?

我想知道是否有人遇到过删除插图边距的正确功能。类似于 objective-c 中的这个答案

if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) {
    [tableView setSeparatorInset:UIEdgeInsetsZero];
}

共3个答案

匿名用户

您可以只设置属性:tableView.separatorInset=UIEdgeInsetsZero

匿名用户

就像 Objective-C 的例子一样,但转换为 swift。我自己也遇到了一些麻烦。此代码在 UITableView 中工作,如果您在 UITableViewController 中执行此操作,请将 self.tableView 替换为 self:

// iOS 7
if(self.respondsToSelector(Selector("setSeparatorInset:"))){
    self.separatorInset = UIEdgeInsetsZero
}

// iOS 8
if(self.respondsToSelector(Selector("setLayoutMargins:"))){
    self.layoutMargins = UIEdgeInsetsZero;
}

对于单元格(仅限iOS 8),将以下代码放入以下函数中:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)

获取单元格,并设置以下属性:

// iOS 8
if(cell.respondsToSelector(Selector("setLayoutMargins:"))){
    cell.layoutMargins = UIEdgeInsetsZero;
}

匿名用户

将以下行放入viewDidLoad()

tableView.layoutMargins = UIEdgeInsetsZero
tableView.separatorInset = UIEdgeInsetsZero

现在查找您的ellForRowAtIndexPath方法并添加以下内容:

cell.layoutMargins = UIEdgeInsetsZero

如今”。零”语法...

    tableView.layoutMargins = UIEdgeInsets.zero
    tableView.separatorInset = UIEdgeInsets.zero

    cell.layoutMargins = UIEdgeInsets.zero