-1

我有一個顯示由url設置的圖像的scrollView。現在我只想將可見圖像和上一張和下一張圖像預先加載到scrollView上以減少內存使用量。我該如何做到這一點?從UIScrollView中刪除'隱藏'的圖像

+1

你有什麼試過? +可能你可以使用UICollectionView而不是「原始」滾動視圖,所以將獲得重用功能開箱 – Vladimir 2013-04-23 10:25:26

回答

0

如果您使用UITableView而不是UIScrollView,則可以創建自己的UITableViewCell類型,在其內容中加載1個圖像。

好處是隻有可見的UITableViewCells(當前顯示在設備屏幕上的那些)被加載到系統內存中,所以它不會使用太多的資源。

Here是您可以在互聯網上找到的許多CustomCell教程之一。

1

當我做同樣的事情時,我創建了3倍大小的UIScrollView。足夠大以容納3張圖像,即當前顯示的圖像和右下角的下一個兄弟圖像。

如果這些圖像之前沒有加載過,則會預加載這些圖像。所以用戶有一些流暢而敏感的外觀&的感覺。

當用戶滾動到下一個,他只能滾動一個,然後我重新排列視圖。可以說圖像1,2和3在滾動視圖中,而2是可見的,所以1,2(和3)被(預)加載。用戶向右滾動。圖像3將可見。只要它變得完全可見,我再次將滾動視圖的可見矩形設置到中間。現在圖像2是最左邊的一個,圖像3可見並且圖像4被放置爲最右邊並且預先加載。

當到達圖像列表的末尾時,即顯示第一個或最後一個圖像的末尾,然後我在最左邊或最右邊放置一個虛擬視圖,這是一個簡單的文本視圖,顯示「沒有更多圖片」。

很抱歉,我無法分享該代碼。

+0

是的,我有這樣的東西已經工作,我的問題是刪除圖像不可見..太糟糕了,你可以我不會分享一些代碼,因爲這對我來說真的很有幫助 – Daantjeeuh 2013-04-23 12:03:30

+0

不,這段代碼並沒有什麼幫助,因爲它「嵌入」了一些相當困難的商業邏輯,並且我在那裏犯了一些概念錯誤,因爲那是我的第一個真正的應用程序。你有什麼問題去除圖像?我使用了某種應用程序內部緩存,我將它們保存在字典中,當內存警告進入時,我刪除該字典中最舊的一半。與此同時,我學會了更好的緩存解決方案。但是,除去它們的具體問題是什麼? – 2013-04-23 12:46:27