2011-04-25 77 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]; 
} 

希望它有帮助!