Objective-c 隐藏视图动画
Posted
技术标签:
【中文标题】Objective-c 隐藏视图动画【英文标题】:Objective-c Hidden View animation 【发布时间】:2011-04-25 10:51:22 【问题描述】:您好,我的视图中有一个隐藏视图,通过单击按钮会出现。但是当你点击按钮时,我希望视图做一个向上滑动的动画,这样它就不会只是出现,而是向上滑动到它的位置。
这是我的隐藏视图的代码: 在 .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;
【问题讨论】:
Open view with slide effect from bottom to top on iPhone的可能重复 是的,我也为重复 +1,您的链接完全回答了这个问题 【参考方案1】:尝试,假设视图是纵向的:
- (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);
];
【讨论】:
问题在于它“在”第一个视图“下方”,因此第一个视图中的所有按钮等仍显示在动画视图中。我该如何解决? 通过调用[self.view bringSubviewToFront:loginView];
,也将其添加到解决方案中。【参考方案2】:
您应该更改视图的 frame 属性,并且应该在动画块中进行,如下所示:
-(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];
希望对你有帮助!
【讨论】:
以上是关于Objective-c 隐藏视图动画的主要内容,如果未能解决你的问题,请参考以下文章
Objective-C - CABasicAnimation 在动画后应用更改?
如何使用objective-C在ios 9中隐藏特定视图控制器的状态栏