我在第一次滾動時遇到了我的tableview過度切斷的問題。一旦所有單元格都顯示出來,滾動變得非常平滑。該表有720行。第一次滾動時表格視圖非常波動通過
我的手機設置類似於|圖像(32x32) - 標籤 - 圖像(75x22) - 圖像(75x22)| :my cell
我在iPhone 6s上測試這個。資產目錄中的圖像位於@ 2x插槽中,左圖像尺寸爲64x64,右圖像尺寸爲150x44。他們的文件大小是5-9kb。我沒有對細胞高度做任何改變。使用默認的44
繼承人我的代碼:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("PokedexCell", forIndexPath: indexPath) as! PokedexCell
cell.thumb.image = UIImage(named: "\(dex[indexPath.row].name!)Thumb")
cell.name.text = dex[indexPath.row].name
if dex[indexPath.row].type2 == nil {
cell.type1.image = nil
cell.type2.image = UIImage(named: dex[indexPath.row].type1!)
} else {
cell.type1.image = UIImage(named: dex[indexPath.row].type1!)
cell.type2.image = UIImage(named: dex[indexPath.row].type2!)
}
// check to make sure cells are being reused.
if cell.tag != 999 {
cell.tag = 999
print("cell \(++self.cells)")
}
return cell
}
如果我刪除,設置拇指圖像行,表完美的作品。我也不瞭解內存使用情況。
拇指形象:推出= 12.2MB,全部滾動到行720 = 75.5mb方式
沒有拇指圖像(?!?!):推出= 10.3MB,全部滾動到行720路= 12.1mb
因此,讓我們只是說每個拇指圖像是10kb,如果所有被加載的都是最大約7mb。
任何幫助/想法將不勝感激!
UPDATE:
試圖zp_x的建議做此:
var thumbs : [UIImage] = []
func getThumbs() {
for x in 0...719 {
thumbs.append(UIImage(named: "\(dex[x].name!)Thumb")!)
}
}
呼叫getThumbs()在viewDidLoad中。這完全消除了簡陋,但該應用程序現在需要大約7秒鐘來加載頁面。另外,一旦加載的內存使用量從〜114mb開始,但一直滾動到最後一行,只會將使用量增加到〜126mb。此外,滾動時的CPU使用率也比以前高得多。
有沒有人有一個想法拇指圖像發生了什麼?我不瞭解內存使用情況會如何增加。拇指的文件大小從5-9kb。所以甚至說10KB在最大* 720拇指= 7200kb〜7mb。所以很困惑......
不確定這是否有幫助,但你可以試試。您可以嘗試將所有圖像加載到viewDidLoad方法中的數組或字典中,而不是直接從數組或字典中讀取圖像。 – Surely