【问题标题】:Resizing cells according to textView not working?根据 textView 调整单元格大小不起作用?
【发布时间】:2015-11-14 00:16:48
【问题描述】:

我在将单元格大小调整为 textView 的内容时遇到了问题。 textView 的内容会根据用户在应用上键入和发布的内容而有所不同,因此它可能是很长的文本,也可能是很短的文本。

截至目前,它在应用上的显示如下:

但是,我一直在 viewDidLoad() 中使用这部分代码,这在我的应用程序的其他视图中运行良好:

override func viewDidLoad() {
    super.viewDidLoad()

    ProfiletableView.delegate = self
    ProfiletableView.dataSource = self

    self.ProfiletableView.rowHeight = UITableViewAutomaticDimension
    self.ProfiletableView.estimatedRowHeight = 40.0
}

注意:上面的代码一直在应用中的其他 tableViews 上工作,但在显示您的帖子的个人资料部分,它显示它们如下:

与其他使用可调整大小代码的类相比,我一直在代码中来回搜索是否有任何问题,但我似乎找不到任何东西。

有什么想法吗?

编辑:添加了约束照片

编辑 2: 添加了另一张照片

编辑 3: 另一张照片

【问题讨论】:

  • 检查单元格上的约束以确保从上到下都有约束
  • 你是如何为 UITableViewCell 设置约束的?您需要确保约束不会限制单元格的高度。这里的挑战是 UITextView 不会自动增大大小。如果您暂时尝试用 UILabel(行设置为 0)替换 UITextView 是否可以解决问题?
  • @Paulw11 是的,有限制
  • @JoGoFo 这显示了文本,但它被截断了,就像它像在一个句子中一样写下来,然后离开了屏幕,所以我不知道它是否正在调整大小
  • @thefredelement 是的,它起作用了。谢谢!

标签: ios swift uitableview cocoa-touch swift2


【解决方案1】:

通过禁用 textview 滚动来检查。

【讨论】:

  • 一个非常合乎逻辑但非常隐蔽的解决方案。谢谢!
【解决方案2】:

我不肯定这会解决您的问题。但是 Ray Wenderlich 网站上有一篇关于表格视图单元格内动态大小的好文章。

http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layout

【讨论】:

  • 谢谢。我会检查一下。 @JoGoFo 和 thefredelement 帮助我修复了它。这是 textView 的约束和设置问题。
【解决方案3】:

我认为 Uilabel 可以为您做到这一点...... 只需设置编号即可。在具有适当约束的换行模式中将行数归零和文字扭曲将自动增加或减少 UITable 视图单元格和标签的高度。

【讨论】:

    【解决方案4】:

    试试这个代码 设置 textview.isScrollEnabled = false

    override func viewDidLoad() {
        super.viewDidLoad()
    
    ProfiletableView.rowHeight = UITableViewAutomaticDimension
    ProfiletableView.estimatedRowHeight = 40.0
    
    }
    
      func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
      let cell = tableView.dequeueReusableCell(withIdentifier: "abcCell", for: indexPath) as! AbcCell
      cell.textView.delegate = self
       cell.textView.isScrollEnabled = false
     return cell
    }
    

    也在委托下方设置:

       func textViewDidChange(_ textView: UITextView) {
        ProfiletableView.beginUpdates()
        ProfiletableView.endUpdates()
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-03
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 2017-02-28
      相关资源
      最近更新 更多