iOS swift with tableview自定义类

时间:2016-11-01 07:08:20

标签: ios

我正在使用swift为iPad创建iOS应用程序。每个视图都会有一个表视图,我创建了一个UITableView类,但我无法查看任何数据。我已经将其他视图中的tableview链接到该自定义类。

import UIKit

class SideTable: UITableView, UITableViewDataSource, UITableViewDelegate {

var TableItems = ["...", "Dashboard"]

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

override func awakeFromNib() {
    super.awakeFromNib()
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return TableItems.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var cell = dequeueReusableCell(withIdentifier: TableItems[indexPath.row])! as UITableViewCell

    cell.textLabel?.text = TableItems[indexPath.row]
    cell.textLabel?.numberOfLines = 0
    cell.textLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping


    // let currentpagetitle = self.navigationItem.title?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
    let cellname = cell.reuseIdentifier?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)

//        if (cellname == currentpagetitle)
//        {
//
//            cell.backgroundColor = UIColor.lightGray
//        }
//        

    return cell
}

1 个答案:

答案 0 :(得分:0)

您是否连接了数据源和委托? 放在你的viewwilllappear中,例如(或viewDidLoad):

override func viewWillAppear(animated: Bool) {
  super.viewWillAppear(animated)
  self.tableview.datasource = self
  self.tableview.delegate = self
}

如果您使用的是Storyboard或Xib,请将其连接 按住Ctrl键并单击tableview并与所有者连接,然后选择委托并重复数据源

如果这不是问题,可能是您对单元格的定义有疑问。改变你的dequeueCell:

let cell = tableView.dequeueReusableCellWithIdentifier("CellIdentifier", forIndexPath: indexPath) as UITableViewCell

如果单元格相似,请使用相同的标识符。现在您使用的是不同的名称,您正在为每个单元格使用TableItems [indexPath.row]