я использую библиотеку iCarousel в качестве прокрутки для своего приложения. Цель этой библиотеки — управлять автоматической прокруткой изображений. Изображение устанавливается как граница класса iCarousel (который на самом деле UIView
. Он отлично работает при начальной загрузке, но когда я поворачиваю устройство, он выводит странную ошибку. Например, если я прокручиваю от книжной до альбомной, за доли секунды мы можем см. следующее:
Мы почему-то видим "старые" картинки
Вот как я объявляю основной метод для отображения представлений:
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSInteger)index reusingView:(UIView *)view {
NewScrollerItemForIPad *item;
NewsItemMdl *mdl = self.viewModel.arrNews[index];
if(mdl){
/* Check for orientation */
BOOL _isPortrait;
if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)){
_isPortrait = NO;
} else {
_isPortrait = YES;
}
if (self.gotNews){
if(!item){
item = [[NewScrollerItemForIPad alloc] initWithFrame:car.bounds andOrientation:_isPortrait];
}
[item bindViewModel:mdl];
}
}
return item;
}
И метод автоматической прокрутки:
-(void)runMethod{
if(self.sliderCount== (self.pageControl.numberOfPages-1)){
NSLog(@"Here we call");
self.pageControl.currentPage = 0;
self.sliderCount = 0;
[car scrollToItemAtIndex:self.sliderCount animated:YES];
}else{
NSLog(@"And here we call");
self.sliderCount++;
self.pageControl.currentPage ++;
[car scrollToItemAtIndex:self.sliderCount animated:YES];
}
}
Как исправить этот баг? Очевидно, я не хочу, чтобы будущее и старое изображение загружались между новым.
iCarousel
, но я могу сказать вам, что его реализация и поведение очень-очень странные (в основном с ошибками) — то, что мы Чтобы решить проблемы после изменения ориентации, мы каждый раз вызываем метод–reloadData
для фактического экземпляраiCarousel
. - person holex   schedule 16.03.2016