在swift中制作一个简单的Tableview,tableview根本不会填充任何内容。图像正在填充。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "cellIdentifier";
var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? UITableViewCell;
if !(cell != nil){
cell = UITableViewCell(style: UITableViewCellStyle.Subtitle,
reuseIdentifier: cellIdentifier)
}
if(indexPath.row==0){
cell!.textLabel.text = "POG Validation"
cell!.imageView.image = UIImage(named: "myImg")
}
return cell;
cell!.textLabel
的框架是(0,0,0,0)。并且没有填充任何数据。
(lldb) po cell!.textLabel;
<UITableViewLabel: 0x7ce6c510; frame = (0 0; 0 0); userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7ce6c5d0>>
答案 0 :(得分:1)
修复编译错误后,您的代码运行良好:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "cellIdentifier";
var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? UITableViewCell;
if !(cell != nil){
cell = UITableViewCell(style: UITableViewCellStyle.Subtitle,
reuseIdentifier: cellIdentifier)
}
if(indexPath.row==0){
// your forgot the '?'s
cell!.textLabel?.text = "POG Validation"
cell!.imageView?.image = UIImage(named: "myImg")
}
return cell!; // you forgot the '!'
}
我会这样写的:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "cellIdentifier";
let dequedCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? UITableViewCell
let cell = dequedCell ?? UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: cellIdentifier) as UITableViewCell
if(indexPath.row==0){
cell.textLabel?.text = "POG Validation"
cell.imageView?.image = UIImage(named: "myImg")
}
return cell;
}