Swift

 

override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        // tableview顶部空白

        self.automaticallyAdjustsScrollViewInsets = false

        

        tableView = UITableView(frame: CGRectMake(10, 64, UIScreen.mainScreen().bounds.width - 20, 200), style: .Grouped)

        tableView.delegate = self

        tableView.dataSource = self

        tableView.scrollEnabled = false

//        tableView.separatorStyle = .None

        

        // tableview设置边框

        // 设置边框的宽度

        tableView.layer.borderWidth = 1

        // 设置边框的颜色

        tableView.layer.borderColor = UIColor.whiteColor().CGColor

        // 设置UIView的边框为圆角和展现

        tableView.layer.cornerRadius = 10

        tableView.layer.masksToBounds = true

        

        // 底部分割线左对齐

        tableView.separatorInset = UIEdgeInsetsZero

        tableView.layoutMargins = UIEdgeInsetsZero

        tableView.cellLayoutMarginsFollowReadableWidth = false

        

        self.view.addSubview(tableView)

}

 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier("cell") ?? UITableViewCell(style: .Default, reuseIdentifier: "cell")

       

        cell.separatorInset = UIEdgeInsetsZero

        cell.layoutMargins = UIEdgeInsetsZero

        cell.preservesSuperviewLayoutMargins = false

        return cell

}

 

PS:有时候只设置tableView和cell的SeparatorInsert和LayoutMargins仍然不能解决这个问题,左边一点距离始终没有办法封闭。
这时需要设置tableView的cellLayoutMarginsFollowReadableWidth,和cell的preservesSuperviewLayoutMargins。

原文地址:https://www.cnblogs.com/gongyuhonglou/p/10311558.html