2009-07-10 4 views
0

Я пытаюсь построить подкласс, который находится над моим главным видом, который составляет приблизительно 3/4 размера основного вида. Когда кнопка нажата, subview должен переключиться на другое подвью. Я рядом, но у меня ДВЕ проблемы.Flipping Subviews над основным видом

Первая проблема заключается в том, что при первом нажатии флип-кнопки второе подвью начинается с полного экрана и сжимается до заданного размера кадра, а не с переворачиваемой анимации.

После визуализации второго представления я могу перевернуть между первым и вторым представлениями (я добавил вторую кнопку, чтобы откидываться назад для целей тестирования).

Вторая проблема заключается в том, что при просмотре представления новый вид загружается перед переворотом, а затем происходит переключение. Я создал перевернутые представления, прежде чем они работали правильно, но только тогда, когда весь экран был просмотром.

Вот мой код, который находится в моем главном контроллере представления:

- (void)viewDidLoad { 

    Page1Controller *myPage1=[[Page1Controller alloc] initWithNibName:@"Page1Controller" bundle:nil]; 
    Page2Controller *myPage2=[[Page2Controller alloc] initWithNibName:@"Page2Controller" bundle:nil]; 
    self.page1 = myPage1; 
    self.page2 = myPage2; 
    [myPage1 release]; 
    [myPage2 release]; 
    [[page1 view] setFrame:CGRectMake(45, 40, 230, 280)]; 
    [[self view] addSubview:[page1 view]]; 

    [super viewDidLoad]; 
} 

А вот код для двух кнопок:

- (void)flipPressed:(id)sender { 
    [UIView beginAnimations:@"View Flip" context:nil]; 
    [UIView setAnimationDuration:1.5]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:[page2 view] cache:YES]; 
    [page1.view removeFromSuperview]; 
    [[page2 view] setFrame:CGRectMake(45, 40, 230, 280)]; 
    [[self view] addSubview:[page2 view]]; 

    [UIView commitAnimations]; 

} 

- (void)backFlipPressed:(id)sender { 
    [UIView beginAnimations:@"View Flip" context:nil]; 
    [UIView setAnimationDuration:1.5]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:[page1 view] cache:YES]; 
    [page2.view removeFromSuperview]; 
    [[self view] addSubview:[page1 view]]; 
    [[page1 view] setFrame:CGRectMake(45, 40, 230, 280)]; 

    [UIView commitAnimations]; 
} 

Любая помощь на любом из моих вопросов, очень ценится!

ответ

0

Первая проблема: установите рамки ваших представлений до beginAnimations.

+0

Благодарим вас - это устранило проблему со вторым запуском полного экрана и сжатием. Представление по-прежнему не переворачивается при первом нажатии кнопки, только при последующих нажатиях кнопок. –

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

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