Swift细胞含量未显示

时间:2017-09-21 13:18:41

标签: ios swift uitableview

我有一个包含单元格的tableView,每个单元格应包含图像,标签和不可编辑的textView。

以下是它显示的内容:https://i.stack.imgur.com/WmOn3.png正如您所看到的,它显示了一个空的tableView,但三条顶线彼此靠近。

ViewController.swift:

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

let food = ["Pasta-salad", "Hamburger", "Pancakes"]

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
    return (food.count)
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell

    cell.foodImage.image = UIImage(named: (food[indexPath.row] + ".jpg"))
    cell.foodLabel.text = food[indexPath.row]
    cell.foodDescription.text = ("insert description of \(food[indexPath.row])")

    return (cell)
}
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

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

TableViewCell.swift

class TableViewCell: UITableViewCell {

@IBOutlet weak var foodImage: UIImageView!
@IBOutlet weak var foodLabel: UILabel!
@IBOutlet weak var foodDescription: 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
}
}

Main.storyboard:enter image description here

3 个答案:

答案 0 :(得分:2)

如果您的单元格具有固定高度,请将其设置为tableView.rowHeight

但是如果你有动态高度,请检查你的约束。这是可能的,而不是你的细胞底部没有任何限制。

同时检查委托数据源

tableView.delegate = self
tableView.dataSource = self

答案 1 :(得分:2)

好像是单元格0的高度。

通过一些计算,实现UITableViewDelegate方法返回每个单元格的高度,您也可以为每个单元格返回不同的高度。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 100.0;//Choose your custom row height
}

答案 2 :(得分:0)

您需要将视图控制器设置为tableview的delegatedataSource

将此添加到视图控制器:

override func viewDidLoad() {
    super.viewDidLoad()

    tableView.delegate = self
    tableView.dataSource = self
}