在主视图上方翻转子视图

时间:2009-07-10 16:44:42

标签: iphone uiview uiviewcontroller

我正在尝试构建一个位于主视图上方的子视图,大小约为主视图的3/4。按下按钮时,子视图应翻转到另一个子视图。我很接近,但我有两个问题。

第一个问题是,第一次按下翻页按钮时,第二个子视图以全屏幕开始缩小到指定的帧大小,而不是任何正在渲染的翻转动画。

渲染第二个视图后,我可以在第一个和第二个视图之间切换(为了测试目的,我添加了第二个按钮以翻转)。

我的第二个问题是当视图翻转时,新视图在翻转之前加载,然后发生翻转。我之前已经建立了翻转视图,但是只有当整个屏幕都是视图时才会这样。

这是我的主视图控制器中的代码:

- (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];
}

非常感谢我对任何一个问题的任何帮助!

1 个答案:

答案 0 :(得分:0)

第一个问题:在beginAnimations之前设置视图的框架。