簡體   English   中英

為什么單元格會在 UITableView 中相互重疊?

[英]Why would cells overlap each other in UITableView?

我的應用程序有數十個 tableViews,它們都可以正常工作,除了一個相對較長的表格,如果我添加一個單元格作為最后一個單元格,它會因重疊而重復。

我檢查了表源,它有一個這種類型的單元格,為什么它會重復?

我使用這種常用方式按名稱調用單元格

let cell = tableView.dequeueReusableCellWithIdentifier(cellName, forIndexPath: indexPath)

所有刷新后,您可以看到一個“reportPlace”ID,為什么所有這些都是重復的。

items = [["similarPlace", "similarPlace", "similarPlace", "reportPlace"]]

——

災難

免責聲明:我檢查了所有提到的類似問題的解決方案

解決方案:僅確定一次高度。

我多次設置單元格的高度,這導致了這個問題:

self.tableView?.rowHeight   = 60.0
self.tableView?.rowHeight   = 100.0

我以為它會使用最后一個,但看起來每個都制作了一個單元格實例。

另外,不要重新加載表超過需要的次數。 並且不要更改cellForRowAtIndexPath方法中的源數據。

我遇到了同樣的問題,無法弄清楚為什么會發生這種情況(y 位置設置錯誤),但是我做了一個小“hack”,為我解決了這個問題

如果您以編程方式創建單元,只需在單元類的init中執行此操作:

override init(frame: CGRect) {
  let noProblemFrame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height)
  super.init(frame: noProblemFrame)
}

否則在awakeFromNib做同樣的事情

override func awakeFromNib() {
   let noProblemFrame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height)
   frame = noProblemFrame

我嘗試了上述所有答案,但除了 Sandu 的答案外,沒有任何效果對我有用,那就是訣竅!

// Working solutions, any value will do
self.tableView.estimatedRowHeight = 200

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM