Използвам UIScrollView
в моето приложение, което зарежда брой изображения (повече от 200 изображения).
Зареждам изображения от диска и просто добавям в UIScrollView
. Получавам съобщение за грешка на Xcode 5 „Прекратено поради грешка в паметта“ и приложението е прекратено неочаквано. Но не всеки път, когато това се случва от време на време.
Все още не съм напълно сигурен, че това е проблем с паметта. Но не открих причината за кода за проблема с паметта.
Дори аз проверих проблема с изтичане на памет чрез инструмента на инструмента, няма изтичане на памет.
Създадох персонализиран многократно използваем UIView
клас с помощта на Custom ACReuseQueue
за UIScrollView
като UITableView
поради ефективността и отнемането на време при създаването на обекта
Приложих концепция за поставяне в опашка и изваждане от опашка вътре в scrollViewDidScroll
:
За да добавите изображение в UIScrollView
: използва следния код
-(void)imageAdd:(ALAsset *)item
{
__block ImageControl *imageControl;
imageControl = (ImageControl*)[[ACReuseQueue defaultQueue] dequeueReusableObjectWithIdentifier:@"ImageControl"];
[imageControl setAlAsset:item];
[imageControl setDuration:1.0];
[imageControl setIsCopy:NO];
[self.galleryView addItem:imageControl];
[imageControl release];
}
кодът по-долу се използва, когато потребителят превърта ScrollView
-(void)scrollViewDidScroll:(UIScrollView*)scrollView
{
for (ImageControl *imageControl in self.galleryView.items)
{
if (CGRectIntersectsRect(imageControl.frame, self.galleryView.bounds))
{
imageControl = (ImageControl*)[[ACReuseQueue defaultQueue] dequeueReusableObjectWithIdentifier:@"ImageControl"];
[self.galleryView addItem:imageControl];
}
else
{
[imageControl removeFromSuperview];
[[ACReuseQueue defaultQueue] enqueueReusableObject:imageControl];
}
}
}
Все пак не постигнах UIScrollView
за многократна употреба като UITableView