【问题标题】:Swift - Subclassing UITableViewSwift - 继承 UITableView
【发布时间】:2020-03-18 12:57:51
【问题描述】:

在我的项目中,我有一个classWhishlistTableViewController,它是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
    }
}

感谢每一个帮助:)

【问题讨论】:

    标签: ios swift uitableview uiviewcontroller


    【解决方案1】:

    实际上,您的 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
    }()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-24
      • 2019-04-14
      相关资源
      最近更新 更多