我尝试使用" dequeueReusableCellWithIdentifier"使用简单的原型单元格做一个简单的UITableView。但是这个功能还没有找到我的Prototype Cell。
我的代码:
import Foundation
import UIKit
class DanceClubViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableViewSound: UITableView!
override func viewDidLoad()
{
super.viewDidLoad()
self.tableViewSound.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cellVote")
self.tableViewSound.dataSource = self
self.tableViewSound.delegate = self
self.tableViewSound.reloadData()
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
}
@IBAction func backToViewPlay(sender: AnyObject) {
self.navigationController?.popToRootViewControllerAnimated(true)
}
func tableView(tableView:UITableView, numberOfRowsInSection section:Int)->Int
{
return 10
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
var cell : UITableViewCell = self.tableViewSound.dequeueReusableCellWithIdentifier("cellVote") as UITableViewCell
return cell
}
如果有人已经遇到过这个问题?
我的Prototype Cell的标识符是:cellVote
答案 0 :(得分:2)
解决标签问题的关键是在另一个文件中创建自定义TableViewCell类:
import UIKit
class DanceCell: UITableViewCell {
@IBOutlet weak var num: UILabel! //connect the label
}
然后是你的ViewController:
import Foundation
import UIKit
class DanceClubViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableViewSound: UITableView!
override func viewDidLoad()
{
super.viewDidLoad()
self.tableViewSound.dataSource = self
self.tableViewSound.delegate = self
self.tableViewSound.reloadData()
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
}
@IBAction func backToViewPlay(sender: AnyObject) {
self.navigationController?.popToRootViewControllerAnimated(true)
}
func tableView(tableViewSound:UITableView, numberOfRowsInSection section:Int)->Int
{
return 10
}
func tableView(tableViewSound: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableViewSound.dequeueReusableCellWithIdentifier("cellVote", forIndexPath: indexPath) as DanceCell
cell.num.text = "Hello"
return cell
}
}
我删除了一些东西,并在'cellForRowAtIndexPath'函数中添加了关键字来注册单元格。然后,我能够与标签进行沟通。确保原型单元格在属性检查器中将“cellVote”设置为标识符。