2010-01-24 61 views
0

我有一個uiscrollview,我逐個添加uiimageviews,但是當我添加超過40個對象時,我有內存問題,我猜測應用崩潰了......我應該怎麼做?我正在嘗試製作一個應用程序,如蘋果的照片查看器!請幫助!如何在uiscrollview中添加超過100個uiimageviews

我不想thumbnais我只是想顯示下一個圖像時,從一個到另一個用戶輕彈,但我必須卸載以前的圖像和顯示下一個

我刪除以前像這樣

UIImageView l; 

l=[[scroll subviews] objectAtIndex:0]; 
[l removeFromSuperview]; 
l=nil; 

,然後我補充下一個這樣的

[scroll insertSubview:imageView atIndex:counter]; 

,但我看到了一個黑色的背景沒有圖像

請幫忙!

回答

1

要做到這一點,最好的方法是一次將一些圖像加載到表格視圖中。在表格的每個單元格中,放置三個縮略圖。您需要製作自定義單元格。這樣,表單元格將被取出隊列並重新使用內存。查看Facebook Three20項目,我認爲他們已經實現了,所以你需要一些代碼來處理。

http://joehewitt.com/post/the-three20-project/

1

問問自己,你是否真的需要將全部100張圖片加載到內存中?爲什麼不只是在後臺加載一些圖像,取決於用戶滾動到的圖像?

+0

我不想將100張圖片加載到內存中我想卸載當前加載的上一張圖片並添加(加載)下一張圖片。從內存中刪除以前的圖片並添加下一張圖片... – stefanosn 2010-01-24 11:15:55

1

不要那樣做。

如果要顯示100個小縮略圖,請先用核心圖形調整它們的大小。然後,當你一次顯示100張圖像時,它們佔用的內存要少得多。

如果要顯示100張大圖像,但每次只能看到一張圖像,請使用1或2張圖像視圖加載當前圖像和下一張圖像,並以巧妙的方式爲它們製作動畫,使其看起來無盡流。你仍然可以使用scrollView,只需監視它的位置並適當地定位你的圖像視圖。

+0

我不想要thumbnais我只是想顯示下一張圖片,當用戶從一個滑動到另一個 – stefanosn 2010-01-24 11:19:40

+0

享元模式 – Nimrod 2010-01-24 18:06:20

+0

Flywieght模式確實 – 2012-02-09 14:15:01

0

恰好有一個蘋果的示例代碼,你想要什麼做的。查找PageControl示例,它已經實現。基本上滑塊從控制器陣列中獲取圖像控制器;除此之外,當滾動器更改爲上一張或下一張圖片時,控制器會動態添加並從該陣列中移除以保持內存佔用空間不足。看看示例代碼,它很簡單。 希望它有幫助。