我開發一個iPad應用程序上,我有一個非常大的UITableView這是我能水平滾動一個UIScrollView(約10倍的屏幕寬度和高度)以上。的UITableView/UIScrollView的滾動優化/性能
在每一個的UITableViewCell我添加各種量UIViews的。我的問題是滾動性能非常糟糕。所以我搜索了Google的解決方案,但沒有找到適合我的問題的任何東西。
我認爲問題是,當一個滾動做,但我不知道如何限制這個整個屏幕重繪...
任何人能提供一個解決方案?
謝謝。
我開發一個iPad應用程序上,我有一個非常大的UITableView這是我能水平滾動一個UIScrollView(約10倍的屏幕寬度和高度)以上。的UITableView/UIScrollView的滾動優化/性能
在每一個的UITableViewCell我添加各種量UIViews的。我的問題是滾動性能非常糟糕。所以我搜索了Google的解決方案,但沒有找到適合我的問題的任何東西。
我認爲問題是,當一個滾動做,但我不知道如何限制這個整個屏幕重繪...
任何人能提供一個解決方案?
謝謝。
您將需要保持單元格的可用性,並只加載可見區域中所需的視圖。和我們做圖片延遲加載一樣。
我應該在哪裏繪製視圖到不在cellForRowAtIndexpath中的單元格? – user944351
你可以加載它懶洋洋地。我的意思是把它放在後臺線程中。緩存下一次使用。這裏的要點是,當您在cellForRowAtIndexPath中執行繁重的任務時,您肯定會遇到性能問題。 SO鏈接包含許多提高性能的提示。 – Vignesh
你需要做的UITableViewCell *電池=的tableView dequeueReusableCellWithIdentifier:@ 「MyIdentifier」];重新調整細胞。你應該做的就是這個,如果你還沒有:在你的
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法
,您需要:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"] autorelease];
}
採取從蘋果公司的文件來看看this。
希望這會有所幫助。
謝謝,但我已經重用這樣的我的單元格! – user944351
你能提供一些額外的信息嗎?鏈接或例子?謝謝 – user944351
看看下面的例子,你會知道如何實現它http://developer.apple.com/library/ios/#samplecode/ScrollViewSuite/Introduction/Intro.html –