我想要一个UITableView使用subtitle样式的单元格dequeueReusableCellWithIdentifier。
UITableView
subtitle
dequeueReusableCellWithIdentifier
我最初的Objective-C代码是:
static NSString* reuseIdentifier = @"Cell"; UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier]; if(!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier]; }
在UITableView已经在SO上搜索了几个问题之后,我想像这样在Swift中编写它:
tableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "Cell") let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
但这并不能让我说我想要一种subtitle风格。所以我尝试了这个:
var cell :UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
这给了我一个subtitle牢房,但是却没有让我dequeueReusableCellWithIdentifier。
我已经研究了更多内容,并观看了此视频教程,但是他创建了一个单独subclass的对象UITableViewCell,我认为这是不必要的,因为我之前在Obj- C中实现了相同的效果。
subclass
UITableViewCell
有任何想法吗?谢谢。
请记住,UITableView该函数在函数中定义为可选,这意味着您的初始单元格声明需要检查属性中的可选。另外,返回的排队单元格也是可选的,因此请确保对进行强制转换UITableViewCell。之后,我们可以强制展开,因为我们知道我们有一个牢房。
var cell:UITableViewCell? = tableView?.dequeueReusableCellWithIdentifier(reuseIdentifier) as? UITableViewCell if (cell == nil) { cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: reuseIdentifier) } // At this point, we definitely have a cell -- either dequeued or newly created, // so let's force unwrap the optional into a UITableViewCell cell!.detailTextLabel.text = "some text" return cell