Swift - 子类化 UITableView

Swift - Subclassing UITableView

在我的项目中,我有一个 class WhishlistTableViewController,它是 UITableViewController 的子类。我正在努力设置它的属性。为什么我无法在我的 WhishlistTableViewController 中访问 UITableViewController functions

这是我尝试过的方法,但它只是给了我“Value of type 'WhishlistTableViewController' has no member 'layer'”错误。

在 UIViewController 中设置:

let theTableView: WhishlistTableViewController = {
   let v = WhishlistTableViewController()        // -> error
    v.layer.masksToBounds = true                 // -> error
    v.layer.borderColor = UIColor.white.cgColor  // -> error
    v.layer.borderWidth = 2.0                    // -> error
    v.translatesAutoresizingMaskIntoConstraints = false // -> error
    return v
}()

WhishlistTableViewController:

class WhishlistTableViewController: UITableViewController {

public var wishList : [Wish]?

override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.register(WhishCell.self, forCellReuseIdentifier: WhishCell.reuseID)
}

// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return wishList?.count ?? 0
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: WhishCell.reuseID, for: indexPath)
    let currentWish = self.wishList![indexPath.row]
    cell.textLabel?.text = currentWish.wishName
    return cell
}

}

class Wish: NSObject {
    public var wishName : String?
    init(withWishName name: String) {
        super.init()
        wishName = name
    }
}

感谢您的每一次帮助:)

实际上您的 WhishlistTableViewController 不是 UIView,因此您无法直接访问它的层。 请尝试以下

let theTableView: WhishlistTableViewController = {
let v = WhishlistTableViewController()        
 v.view.layer.masksToBounds = true                 
 v.view.layer.borderColor = UIColor.white.cgColor  
 v.view.layer.borderWidth = 2.0                    
 v.view.translatesAutoresizingMaskIntoConstraints = false 
return v
}()