0

Я перекрестно растворяю между изображениями на страницах моего подкласса UIPageController. При переходе страницы можно поворачивать страницу. Иногда поворот страницы становится прозрачным в середине, пока не завершится переход.Пересекающиеся переходы, мешающие зависанию страниц на страницах UIPageController

В приведенном ниже коде класс страницы является подклассом UIViewController, чей вид имеет под просмотр UIImageView. PageController - это мой подкласс UIPageViewController.

@implementation PageController : UIPageViewController 

- (void)crossfadeToImage:(UIImage *)image 
{ 
    for (int i = 0; i < self.pages.count; i++) { 
     Page *page = self.pages[i]; // Pages fed to page controller in delegate 
     [UIView transitionWithView:page.view duration:duration options:UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveEaseInOut animations:^{ 
      page.image = image; 
     } completion:nil]; 
    } 

} 

код страницы выглядит следующим образом:

// HEADER 

@interface Page : UIViewController 

@property (strong, nonatomic) UIImage *image; 

- (instancetype)initWithPageFrameSize:(CGSize)size image:(UIImage *)image; 

@end 

// IMPLEMENTATION 

@implementation Page 

- (void)loadView 
{ 
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, _pageFrameSize.width, _pageFrameSize.height)]; 

    self.view = view; 
} 

- (UIImage *)image 
{ 
    return _imageView.image; 
} 

- (void)setImage:(UIImage *)image 
{ 
    if (!_imageView) { 
     _imageView = [[UIImageView alloc] initWithImage:image]; 
     _imageView.frame = self.view.bounds; 
     [self.view addSubview:_imageView]; 
    } else { 
     _imageView.image = image; 
    } 
} 

@end 

Я угадал склейку и страницы локон анимация укладки в странным образом или что-то. Любые идеи о том, как предотвратить этот побочный эффект «исчезающей страницы»?

+0

Просто заметили, что крестообразное растворение не мешает анимации завивки страницы, когда применяется непосредственно к рассматриваемому изображению, а не к page.view. –

ответ

0

Оказывается, применение анимации к изображению непосредственно фиксирует это. Что-то вроде:

- (void)crossfadeToImage:(UIImage *)image 
{ 
    for (int i = 0; i < self.pages.count; i++) { 
     Page *page = self.pages[i]; // Pages fed to page controller in delegate 
     [UIView transitionWithView:page.**imageView** duration:duration options:UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveEaseInOut animations:^{ 
      page.**imageView**.image = image; 
     } completion:nil]; 
    } 
} 

По-прежнему, любые сведения о том, почему это не работает, приветствуются.

 Смежные вопросы

  • Нет связанных вопросов^_^