2009-07-10 73 views
0

我試圖構建一個位於主視圖上方的子視圖,該視圖大約是主視圖大小的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]; 
} 

在任的我的問題,任何幫助,不勝感激!

回答

0

第一個問題:在beginAnimations之前設置您的視圖的幀。

+0

謝謝 - 解決了第二個子視圖開始全屏縮小的問題。該視圖仍然不會在第一次按鈕點擊時翻轉,僅在隨後的按鈕單擊時纔會翻轉。 – 2009-07-10 17:09:33

相關問題