自定义 UITableViewCell 不显示内容

Posted

技术标签:

【中文标题】自定义 UITableViewCell 不显示内容【英文标题】:Custom TableViewCell not displaying content 【发布时间】:2014-11-25 16:35:31 【问题描述】:

我设置了一个自定义 UITableViewCell,但它没有显示任何内容。当 TableView 连接到默认单元格时,它会显示内容。我将 QuoteyTableViewCell 设置为故事板中单元格的类。不知道我做错了什么,这是我的代码。谢谢:)。

导入 UIKit

类 KeepTableViewController: UITableViewController

var keepQuotes : Array> = [[

"quote": "Twenty years from now you will be more disappointed by the things that you didn't do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover.",
"author" : "H. Jackson Brown Jr"],[

 "quote": "Be yourself; everyone else is already taken.",
 "author" : "Oscar Wilde"],[

 "quote": "I've learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.",
  "author" : "Maya Angelou"
],[

   "quote":  "If you tell the truth, you don't have to remember anything.",
    "author" : "Mark Twain"
]
 ]




override func viewDidLoad() 
    super.viewDidLoad()

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem()


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.


// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int 
    // #warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 1


override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    // #warning Incomplete method implementation.
    // Return the number of rows in the section.
    return keptQuotes.count



override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

    let cell : QuoteyTableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath:

indexPath) 作为 QuoteyTableViewCell

    // Configure the cell...

    cell.authorLabel.text = keptQuotes[indexPath.row]["author"]
    cell.quoteTextView.text = keptQuotes[indexPath.row]["quote"]

    return cell

和细胞类:

导入 UIKit

类 QuoteyTableViewCell: UITableViewCell

@IBOutlet weak var authorLabel: UILabel!
@IBOutlet var quoteTextView: UITextView!

override func awakeFromNib() 
    super.awakeFromNib()
    // Initialization code


override func setSelected(selected: Bool, animated: Bool) 
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state

再次感谢:)

【问题讨论】:

情节提要中的单元原型是否分配了QuoteyTableViewCell 类以及重用标识符“Cell”? @zisoft 是的,还是不行 是否调用了 cellForRowAtIndexPath?在那里设置断点并单步执行代码 @zisoft 好的,我不认为它被调用,放入一些断点和一些打印语句。知道为什么它不会被调用吗?谢谢:) 我把所有这些都放在一个答案中 【参考方案1】:

检查以下几点:

情节提要中 TableView 的 Content 属性设置为“Dynamic Prototypes”

情节提要中的原型单元具有自定义类集

情节提要中的原型单元具有正确的重用标识符集

tableView 的datasourcedelegate 属性正确绑定到TableViewController

【讨论】:

三个都检查了,一切正常,还是不会调用cellForRowAtIndexPath。 :// 刚刚通过在不同的项目中重新启动它来工作,Xcode 有时会很时髦。非常感谢。

以上是关于自定义 UITableViewCell 不显示内容的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 不显示内容

改变自定义uitableviewcell内容在不同方向的位置

自定义 UITableViewCell 不显示文本字段

自定义 UITableViewCell 不显示标签

UITableViewCell 自定义编辑视图

自定义 UITableViewCell 显示不正确的值