我想在我的Viewcontroller中实现一个简单的tableView,但输出不完整。内容有时只能在两行中显示。
经典之物:
课程使用:
class MealOfWeekView: UIViewController, UITableViewDelegate, UITableViewDataSource {...}
我设置了代理
override func viewDidLoad() {
super.viewDidLoad()
self.tableViewFood.delegate = self
self.tableViewFood.dataSource = self
self.tableViewFood.reloadData()
}
我使用正确的标识符:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("foodIdent", forIndexPath: indexPath) as! FoodTableViewCell
cell.dayLabel?.text = "\(day[indexPath.row])"
return cell
}
返回1个部分并返回7行
=>我第一次使用Tab Bar Controller,在我的第一个标签中已经有一个tableView。这个很完美。
tableView显示据我所知星期二,星期六或星期日的日子......不知道信息是否重要:)
修改 所以在我的帮助下,我发现,我的日标是零。
我的FoodTableViewCell
class FoodTableViewCell: UITableViewCell {
@IBOutlet weak var dayLbl: UILabel!
}
我添加到我的viewDidLoad这一行:
self.tableViewFood.registerClass(FoodTableViewCell.self, forCellReuseIdentifier: "foodIdent")
但它没有用。
如果您需要更多代码,请签名。
谢谢!
答案 0 :(得分:0)
您的问题与您的自定义类FoodTableViewCell有关,但我会首先验证以下内容。
print(" dayLabel:(cell.dayLabel?.text)")
print(" day [indexPath.row] :( day [indexPath.row]")
使用表格视图确认您是registering FoodTableViewCell。
确认您的子类FoodTableViewCell的dayLabel属性设置正确。尝试更改背景颜色,以便您知道它在UI中显示的最少。
检查您的UITableViewCell的子类是否覆盖并设置dayLabel以便正确重用。prepareForReuse()
后台information用于处理表格视图
答案 1 :(得分:0)
<强>解强>
我找到了答案here
使用标签栏控制器时,您必须使用viewDidAppear
或viewWillAppear
这条线对我有用:
override func viewWillAppear(animated: Bool) {
self.tableViewFood.delegate = self
self.tableViewFood.dataSource = self
dispatch_async(dispatch_get_main_queue(), {
self.tableViewFood.reloadData()
})
}