【问题标题】:Swift - UITableViewCell jumps when updating UILabel textSwift - 更新 UILabel 文本时 UITableViewCell 跳转
【发布时间】:2017-01-31 15:28:45
【问题描述】:

当我像这样更新 UITableViewCell 中的 UILabel 文本时:

self.label.text = "label text"

一切都很好......

但是当我从 Struct Array 更新我的标签文本时,它会导致 UITableView 有时会在向上滚动到顶部时跳跃,而不是在向下滚动时,而是当我向上滚动...

不明白为什么会这样......

结构,正在从我从服务器获得的结果中添加数据

struct ContentStruct {
  var textLink : String? = ""
  var title : String? = ""
  var text : String? = ""
}

CellForRow

let postData = cellContentArray[(indexPath as NSIndexPath).section]

cell.binData(content: postData)

TableViewCell

 func binData(content: ContentStruct) {
    self.titleLabel.text = content.title
    self.text.text = "yytytytyt"//text
    self.uuidLabel.text = "yhhyhyhyyh"
   }

我正在调整单元格的大小,如下所示: 在 ViewDidLoad 中:

tableView.rowHeight = UITableViewAutomaticDimension

然后是这个:

 func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    let height = self.heightAtIndexPath.object(forKey: indexPath)
    if ((height) != nil) {
        return CGFloat(height as! CGFloat)
    } else {
        return UITableViewAutomaticDimension
    }
}

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    let height = cell.frame.size.height
    self.heightAtIndexPath.setObject(height, forKey: indexPath as NSCopying)
}

有什么想法吗?

提前致谢!

【问题讨论】:

  • 添加数据源代码
  • @WetSweater 不知道你的意思是什么?表视图代码?还是结构代码?我正在从我之前从服务器下载的结果中将数据添加到结构中......然后我正在正常更新 tableViewCell......这很奇怪,因为它只发生在底部的第三/第四个单元格上,而不发生在任何其他单元格上。 . 这是一个小闪光,我觉得很讨厌
  • cellForRow 方法的完整内容将有助于提供建议。你在某处重新加载 tableView 吗?
  • 结构数组...?
  • 添加您的 UITableViewDataSource 和有关单元格布局的信息。会有帮助的

标签: ios swift string uitableview uilabel


【解决方案1】:

我发现当您的动态单元格高度与您估计的行高不匹配时,就会发生类似的跳跃。最简单的解决方法是固定单元格高度,或者单独计算每个单元格的高度。

【讨论】:

  • 是的,我同意固定单元格高度要容易得多,但在这种情况下,我不能...给我 1 分钟,我将在上面添加我如何调整单元格的大小。
  • 但奇怪的是,如果我用这样的字符串更新标签,跳转不会发生“字符串”....
猜你喜欢
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多