为什么我的UITextView没有显示在我的Swift / iOS应用程序的自定义表格单元格中?

时间:2017-06-20 02:30:39

标签: ios swift uitableview

我的自定义tableview单元格有标签和textview。当我运行应用程序时,我只看到标签,而不是文本视图。

这是我的观点

enter image description here

这是我的ViewController:

class PostTableViewCell: UITableViewCell {
    @IBOutlet weak var authorAndTimeLabel: UILabel!
    @IBOutlet weak var textTextView: UITextView!
}

class WallViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    @IBOutlet weak var postTableView: UITableView!

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 5
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "postcell", for: indexPath) as! PostTableViewCell
        cell.authorAndTimeLabel?.text = "foo"
        cell.textTextView?.text = "bar"

        return cell
    }
}

这是我在运行应用程序时看到的内容:

enter image description here

我在界面构建器中正确设置了类,并且所有插座都是正确的。

以下是textViews约束

enter image description here

显示位置,大小和可滚动内容大小对于textview是不明确的,并且位置对于标签是不明确的,但是我不明白为什么因为我为textview的所有四个边设置了约束并且左上角的约束标签的一角。应该不够吗?

enter image description here

为什么TextView没有显示?

如何使用一段文字显示它?

1 个答案:

答案 0 :(得分:1)

首先将textView宽度设置为固定(即100或150)

添加协议:

 UITextViewDelegate

在indexPath mehod添加

的cellForRow
  cell.textviewDemo.delegate = self

按回车时添加委托方法以结束编辑

 func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    if (text == "\n")
    {

        self.view.endEditing(true);
        return false;
    }
    return true
}