我以编程方式在swift中创建UITableView
。使用以下代码(我有UITableViewDelegate
和UITableViewDataSource
):
var tableView = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
tableView.frame = CGRectMake(25, 180, 220, 150)
tableView.delegate = self
tableView.delegate = self
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "Cell")
self.view.addSubview(tableView)
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return options.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
cell.textLabel?.text = options[indexPath.row]
println("cell label is")
println(cell.textLabel!.text)
return cell
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 30
}
然而,该表格空白。细胞不会出现。有什么建议吗?
答案 0 :(得分:1)
为什么tableView.delegate在viewDidLoad中初始化了两次?其中一个必须是datasource isn&#39t?
override func viewDidLoad() {
super.viewDidLoad()
tableView.frame = CGRectMake(25, 180, 220, 150)
tableView.delegate = self
tableView.datasource = self
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "Cell")
self.view.addSubview(tableView)
}
答案 1 :(得分:0)
将tableView.reloadData()
添加到self.view
中的viewDidLoad
后调用{/ 1}}。
答案 2 :(得分:0)
不仅缺少 self.tableView.reloadData()。您在数据结构选项中有什么内容从哪里获取数据?
你说你是从解析中查询:
var query = PFQuery(className: "whatever class name")
query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in
if error == nil {
if let newObjects = objects as? [PFObject]{
for one in newObjects {
var message = one["TextMessage"] as! String
// so add this data message data into your array
// then reload Data
}
}
}
else{
print("error")
}
}
}
还更改此
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
要
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return options.count
}
答案 3 :(得分:0)
我注意到你(非常规地)使用options
中的每个元素作为我在其自己的部分中的行。但是,当您设置标签时,您将其基于行号,该行号始终为零。你想要的是:
cell.textLabel?.text = options[indexPath.section]
至于表是空白的,我认为要么