2011-04-25 76 views
0

你好我有一個隱藏的視圖在我的視圖裏面,通過點擊一個按鈕出現。但是,當你點擊按鈕時,我希望視圖做一個向上滑動的動畫,這樣它就不會出現,而是滑動到它的位置。Objective-c隱藏視圖動畫

這裏是我的觀點隱藏代碼:在.H :

@interface hidden_viewsViewController : UIViewController { 

    IBOutlet UIView *loginview; 

} 

@property (nonatomic, retain) IBOutlet UIView *loginview; 

- (IBAction)login; 
- (IBAction)logout; 

而且在.M

@synthesize loginview; 

- (IBAction)login { 

    loginview.hidden = NO; 

} 

- (IBAction)logout { 

    loginview.hidden = YES; 

} 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    loginview.hidden = YES; 
} 
+0

可能重複http://stackoverflow.com/questions/1312366/open - 用幻燈片效果 - 從底部到頂部在iphone上) – 2011-04-25 10:53:52

+0

是的,我也+1爲重複,你的鏈接正好回答這個問題 – 2011-04-25 11:01:58

回答

4

嘗試,假設圖是在縱向方向:

- (IBAction)login { 
    [self.view bringSubviewToFront:loginView]; 
    loginview.frame = CGRectMake(0, 480, 320, 480); 
    loginview.hidden = NO; 
    [UIView animateWithDuration:1.0 
        animations:^{ 
         loginview.frame = CGRectMake(0, 0, 320, 480); 
        }]; 
} 
[從底部滑動效果打開視圖頂部上iPhone](的
+0

問題是,它在第​​一個視圖「下」第一個視圖中的所有按鈕等仍然顯示在動畫上的視圖中。我將如何解決這個問題? – Tapy 2011-04-25 16:36:04

+0

通過調用'[self.view bringSubviewToFront:loginView];',將其添加到解決方案中。 – 2011-04-25 19:06:55

1

您應該更改您的視圖的框架屬性,你應該做的它在一個動畫塊內,如下:

-(IBAction)login 
{ 
    [UIView beginAnimations:@"showView" context:nil]; 
    [UIView setAnimationDuration:0.5]; 
    CGRect viewNewFrame = self.view.frame; 
    viewNewFrame.origin.y = 0; 
    self.view.frame = viewNewFrame; 
    [UIView commitAnimations]; 
} 

希望它有幫助!