Swift3.0 Swift中cell分割线靠左对齐,cell基类封装

来源:互联网 发布:关口知宏 对中国评价 编辑:程序博客网 时间:2024/06/05 17:04



一:如OC一样,swift中cell的分割线也是默认缺了左边一点,那么如何让分割线左对齐呢

      1.那么我们在自定义cell的基类中设置下,那么以后的cell都继承基类,以后都不会有分割线问题了

    

import UIKitclass SCYBaseTableViewCell: UITableViewCell {    override func awakeFromNib() {        super.awakeFromNib()        initCell()    }    override func setSelected(_ selected: Bool, animated: Bool) {        super.setSelected(selected, animated: animated)        // Configure the view for the selected state    }        required init?(coder aDecoder:NSCoder) {        super.init(coder: aDecoder)    }        override init(style: UITableViewCellStyle, reuseIdentifier: String?) {        super.init(style: style, reuseIdentifier: reuseIdentifier)         initCell()    }        private func initCell(){      self.selectionStyle = .gray        if self.responds(to:#selector(setter: UIView.layoutMargins)) {            self.layoutMargins = UIEdgeInsets.zero        }        if self.responds(to: #selector(setter: UITableViewCell.separatorInset)) {            self.separatorInset = UIEdgeInsets.zero        }    }}
总结下就是这段代码很重要

        if self.responds(to:#selector(setter: UIView.layoutMargins)) {            self.layoutMargins = UIEdgeInsets.zero        }        if self.responds(to: #selector(setter: UITableViewCell.separatorInset)) {            self.separatorInset = UIEdgeInsets.zero        }



二:那么仅仅这样,是不够的,你还需要在使用tableView的控制器中加上如下代码,也可以是tableViewCotroller的基类控制器,原理如抽取cell的基类是一个道理

override func viewDidLoad() {        super.viewDidLoad()          if tableView.responds(to:#selector(setter: UITableViewCell.separatorInset)) {            tableView.separatorInset = UIEdgeInsets.zero        }        if tableView.responds(to:#selector(setter: UIView.layoutMargins)) {            tableView.layoutMargins = UIEdgeInsets.zero        }
    }



原创粉丝点击