2010-10-29 2 views
4

Я не в состоянии достичь любой анимации с помощью следующего кода:UIView анимация блока не подвиды Просмотра анимации в

if (self.segmentControl.selectedSegmentIndex == 0) { 
    [UIView transitionFromView:tableView 
         toView:mapView 
         duration:1.0 
         options:UIViewAnimationTransitionFlipFromLeft 
        completion:nil 
     ]; 
    } 
if (self.segmentControl.selectedSegmentIndex == 1) { 
    [UIView transitionFromView:mapView 
         toView:tableView 
         duration:1.0 
         options:UIViewAnimationTransitionFlipFromRight 
        completion:nil 
     ]; 
} 

Взглядов на самом деле обмена, но только без анимации. Это довольно странно. Я также попытался поменять mapView и tableView с self.view.subviews как так (objectAtIndex:0 является toolBar):

if (self.segmentControl.selectedSegmentIndex == 0) { 
    [UIView transitionFromView:[self.view.subviews objectAtIndex:1] 
         toView:[self.view.subviews objectAtIndex:2] 
         duration:1.0 
         options:UIViewAnimationTransitionFlipFromLeft 
        completion:nil 
     ]; 
    } 
if (self.segmentControl.selectedSegmentIndex == 1) { 
    [UIView transitionFromView:[self.view.subviews objectAtIndex:2] 
         toView:[self.view.subviews objectAtIndex:1] 
         duration:1.0 
         options:UIViewAnimationTransitionFlipFromRight 
        completion:nil 
     ]; 
} 

ответ

17

Вы используете неправильные параметры. С помощью этого метода вместо этого вы должны использовать the constants UIViewAnimationOptionTransitionFlipFromLeft and …Right.

Старые константы UIViewAnimationTransitionFlipFromLeft и …Right должны использоваться только для неблокированного метода +setAnimationTransition:…. Эти константы имеют значения 1 и 2 соответственно, в то время как упомянутые выше значения имеют значения 1 < < 20 и 2 < < 20, которые совершенно разные.

+0

Большое спасибо! Я думаю, что это ошибка в Xcode, что она не предлагает или даже не распознает этот параметр при компиляции (хотя он компилируется без ошибок, просто не меняет цвет текста на «скомпилированный» вариант). – runmad

+0

@Canada: Это не ошибка в Xcode, но что стандарт C ('gcc') не мешает константам разных' enum 'от смешивания. – kennytm

+0

Да, извините, я посмотрел на класс немного больше и просто увидел компилятор. Спасибо :) – runmad

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