首页 > 解决方案 > 使用参数以编程方式创建表视图 - swift

问题描述

当我像这样创建表格视图时,参数背景颜色、分隔符样式不适用。

lazy var tableView: UITableView = {
    let tv = UITableView(frame: .zero)
    tv.delegate = self
    tv.dataSource = self
    tv.separatorStyle = .none
    tv.alwaysBounceVertical = false
    tv.backgroundColor = .clear
    if #available(iOS 11, *) {
        tv.dragDelegate = self
        tv.dragInteractionEnabled = true
        tv.dropDelegate = self
    }
    tv.tableFooterView = UIView(frame: CGRect.zero)
    tv.register(AddressCell.self, forCellReuseIdentifier: cellId)
    return tv
}()

init方法,添加table view到view

override init(frame: CGRect) {
    super.init(frame: frame)

    setupViews()
}

private func setupViews() {

    backgroundColor = .clear

    addSubview(tableView)
    tableView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([tableView.leftAnchor.constraint(equalTo: leftAnchor),
                                 tableView.rightAnchor.constraint(equalTo: rightAnchor),
                                 tableView.topAnchor.constraint(equalTo: topAnchor),
                                 tableView.bottomAnchor.constraint(equalTo: bottomAnchor)])
}

示例图像

你能向我描述一下,我做错了什么吗?

标签: swiftuitableviewlazy-loading

解决方案


分隔符样式将在 layoutSubviews 中设置,因为它在加载单元格时被渲染。至于背景颜色。尝试设置它tv.contentView.backgroundColor


推荐阅读