gpt4 book ai didi

ios - 自定义 UITableViewCell 中的 UILabels 未在屏幕上呈现

转载 作者:行者123 更新时间:2023-11-29 02:31:02 25 4
gpt4 key购买 nike

您好,感谢您的帮助。我有一个自定义的 UITableViewCell,类的 Controller 是用 Swift 编写的。所有初始化函数都在创建单元格时被调用,但是在调试器中检查所有标签和我添加到内容 View 的一个 ImageView 的帧为 0。

这是包含 tableView 的文件:

class SearchesMainViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

@IBOutlet var contentTableView: UITableView?
var tableViewData = SearchesMainTableViewData()

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}

internal override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}

override func viewDidLoad(){
super.viewDidLoad()
self.navigationItem.title = "Search"

var nib = UINib(nibName: "SingleSearchTableViewCell", bundle: nil)
contentTableView?.registerNib(nib, forCellReuseIdentifier: SingleSearchTableViewCellController.reuseID())

}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return tableViewData.numberOfSectionsInTableView()
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return tableViewData.numberOfRowsInTableSection(section)
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
var cell:SingleSearchTableViewCellController = tableView.dequeueReusableCellWithIdentifier(SingleSearchTableViewCellController.reuseID()) as SingleSearchTableViewCellController
cell.formatCell()
return cell
}

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 54.0
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: false)
}

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return tableViewData.headerViewForSection(section)
}

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return tableViewData.heightForTableViewSectionHeaders()
}

func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return tableViewData.heightForTableViewSectionFooters()
}
}

这是单元的 Controller :

class SingleSearchTableViewCellController : UITableViewCell {

@IBOutlet var dateMonthLable : UILabel?
@IBOutlet var dateDayLable : UILabel?
@IBOutlet var yearLable : UILabel?
@IBOutlet var makeModelLable : UILabel?

var search : Search = Search()

class func reuseID() -> String{
return "SingleSearchTableViewCell"
}

required init(coder aDecoder: NSCoder) {
super.init()
}

override init(frame: CGRect) {
super.init(frame: frame)
}

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}

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

init(previousSearch s : Search){
search = s
super.init()
}

func formatCell(){
formatDateMonthLable()
formatDateDayLable()
formatYearRangeLable()
formatMakeModelLable()
}

private func formatDateMonthLable(){

}

private func formatDateDayLable(){

}

private func formatYearRangeLable(){

}

private func formatMakeModelLable(){

}
}

以及界面生成器中带有所有绑定(bind)的 tableview 单元格的图像:

enter image description here

非常感谢任何建议或帮助,我是 Swift 和界面构建器的新手。祝你有美好的一天:)

编辑这段代码实际构建了什么 enter image description here

它像我使用 nib 的所有其他地方一样接缝,有一个 initWithNib 或类似的东西,对于 tableview 单元格没有类似的东西。我认为数据和 View 的链接可能已关闭或丢失了某些内容。

最佳答案

问题是你的初始化覆盖了单元类。我对 Swift 不是很熟悉,所以我不知道为什么只有调用 super 才会让你的 subview 不显示。由于您没有在这些方法(或 awakeFromNib 中)中执行任何操作,因此您应该删除它们。我认为这会解决您的问题(在我的测试中确实如此)。

关于ios - 自定义 UITableViewCell 中的 UILabels 未在屏幕上呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26874914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com