【问题标题】:Objective-c Hidden View animationObjective-c 隐藏视图动画
【发布时间】: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;
}

【问题讨论】:

标签: iphone objective-c view hidden


【解决方案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];
 }

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 2016-02-23
    • 2012-08-09
    相关资源
    最近更新 更多