2010-10-24 217 views
1

我正在研究更新UITableView和UIScrollView的應用程序。我喜歡UITableView更新的工作原理。當我添加,刪除或更新項目時,我會根據情況調用insertRowsAtIndexPaths:withRowAnimation:reloadRowsAtIndexPaths:withRowAnimation:deleteRowsAtIndexPaths:withRowAnimation:。但是,更新UIScrollView已成爲更大的挑戰。如何動態添加圖像到UIScrollView?

那麼我該怎麼做呢?我的UIScrollView包含圖像,我希望能夠高效順利地插入,更新和刪除個別圖像 - 動畫 - 也許是以隨機順序。人們如何做這種事情?

舉個例子,我有這樣的代碼在我UIScrollViewDelegate實現增加一個新形象:

if (newImageindex == currentImageIndex) { 
    [scrollView setNeedsDisplay]; 
    [scrollView setContentOffset:portalView.contentOffset animated:YES]; 
} else if (newImageIndex < currentImageIndex) { 
    currentImageIndex++; 
    CGPoint offset = portalView.contentOffset; 
    offset.x += portalView.frame.size.width; 
    portalView.contentOffset = offset; 
} 

這是接近,我想,但並不完全正確。我最終添加了圖像,但UIScrollView似乎滾動到之前視圖中的第一個圖像。如果我開始用手滾動,則會顯示第一個圖像。這就像它滾動到我的圖像中的位置-1。

該示例可能無助於突出顯示我的問題,但確實需要動態調整出現在UIScrollView中的圖像。這方面的藝術狀況如何?

回答

0

UIScrollView不像UITableView那麼專業和結構化。前者是一種通用的視圖,可以將任何東西放入其中,並且可以將任何子視圖放置到任何位置,而後者特別適用於顯示堆疊在另一個之上的單元格列表。

所以答案是:你需要自己動畫滾動視圖中的子視圖。像Three20這樣的各種庫提供了創建更高級視圖的框架,您需要使用其中一個合適的組件或自行打造。

+0

謝謝。這實際上是我所做的。然而,花了幾個月的時間才弄清楚了。坦率地說,這可能還不完全正確。但目前它的運作狀況已經足夠好了。一旦我對解決方案完全滿意,我打算在這裏添加自己的答案。還沒到,唉。 – theory 2011-02-14 16:58:50