[英]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.