|
|
#1 |
|
UIScrollview + UIimageviews memory crash
I need to scroll over 200 images. I ahve found a tutorial that says that I can over 1000 images with the tutorial code. The tutorial is:
http://soulwithmobiletechnology.blogspot.com.br/2011/05/how-to-load-1000s-of-uiimageview-on.html?m=1 I followed the tutorial, but when I use 100 images aprox..the app crash with memory warning. My code is here: http://pastebin.com/BKmsdXxf I have already with UIIMagenamed, with initWithContentsOfFile but the problem persist. Pls , help me! |
|
|
|
0
|
|
|
#2 |
|
Well how big are the images you're loading? If they are very large then they will cause memory warnings, if you're loading 100+.
__________________
Sudoku Solver: Step by Step Explanations Available for FREE on the app store. |
|
|
|
0
|
|
|
#3 |
|
|
0
|
|
|
#4 |
|
Use a tableview if you can. Otherwise set things up so that only a small number of image views exist at a time. Unload the image views when they scroll off.
|
|
|
|
0
|
|
|
#5 |
|
Those are quite large. You might want to consider creating thumbnail versions for display most of the time.
Yeah, UICollectionView (iOS 6) might be a good solution, if UITableView is not, because it works similar in that cells are reused.
__________________
|
|
|
|
0
|
|
|
#6 |
|
solved!!
I release all ImageViews and load the current and next imageView, when scrolling!
Code:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint scrollOffset=scrollView.contentOffset;
int pagAtual = scrollOffset.x/scroll.frame.size.width;
if(pagAtual != 0) { //always release all imageViews and load the current and next
for(int iCnt = 0; iCnt < [scroll.subviews count]; iCnt++) {
UIView *viewLiberar = [scroll.subviews objectAtIndex:iCnt];
if ([viewLiberar isKindOfClass:UIImageView.class]) {
[viewLiberar removeFromSuperview];
viewLiberar = nil;
}
}
}
if(pageOnScrollView < ((int)scrollOffset.x/scroll.frame.size.width))
{
//load the next page
[self loadNextPage:(pagAtual)];
[self loadNextPage:(pagAtual + 1)];
}
else if(pageOnScrollView > ((int)scrollOffset.x/scroll.frame.size.width))
{
if(pagAtual>0)[self loadNextPage:((int)scrollOffset.x/scroll.frame.size.width)-1];
}
pageOnScrollView=scrollOffset.x/scroll.frame.size.width;
}
Last edited by dejo; Dec 12, 2012 at 01:56 PM. Reason: Please use [code] tags. |
|
|
|
0
|
![]() |
|
«
Previous Thread
|
Next Thread
»
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
All times are GMT -5. The time now is 08:42 PM.







Linear Mode
