在iOS中按下按钮弹出uiview

时间:2015-03-18 12:31:05

标签: ios objective-c iphone uiview uibutton

我有一个主视图UIViewController。在该视图中,将一个UIView名称的loginview设置为小尺寸(self.loginview.frame = CGRectMake(4,166,306,153); 在mainview uiviewcontroller我按下一个按钮,如果我点击那个按钮loginview想显示像弹出窗口...我怎么能实现这个帮助我在这里代码。

- (IBAction)Regbtn_click:(id)sender
{

    //in this place i want to  write the code for login view want come like popup.. help me..
loginview.hidden=false

} 

3 个答案:

答案 0 :(得分:0)

不是设置loginview的隐藏属性,而是将其alpha设置为0.0,并且可以使用此动画

-(IBAction)Regbtn_click:(id)sender {
    //[self.view addSubview:self.loginView]; if your loginview is not added to view, if it is, ignore this line
    [UIView animateWithDuration:0.5 animations:^{
    self.loginView.alpha = 1.0; //to display loginview
    } completion:^(BOOL finished) {
    }];
}

答案 1 :(得分:0)

您可以使用两个动画为视图设置动画:
1)缩放
2)褪色

View Controller  
->Button                     (Viewcontroller Child)
->LoginWrapperView           (Viewcontroller Child)
  ->black-transparent View   (LoginWrapperView Child)
  ->login View               (LoginWrapperView Child)

在屏幕上方添加黑色半透明视图(我认为不透明度为0.2),然后将loginView设置为不透明度,并将其不透明度设置为0。

[LoginWrapperView SetHidden:YES];
[loginView SetAlpha:0];  
[loginView SetFrame:CGRectMake(0,0,0,0)];

现在,当您点击按钮时,

     [LoginWrapperView SetHidden:NO];

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.2];
    [UIView setAnimationDelegate:self];
    //position on screen
    [loginView SetAlpha:1];  
    [loginView SetFrame:<your CGRect goes here>];
[UIView setAnimationDidStopSelector:@selector(finishAnimation:finished:context:)];
//animate off screen
[UIView commitAnimations];

然后在半透明视图上处理Tap Getsture,通过反转具有不同值的相同动画来关闭或隐藏相同的动画。

答案 2 :(得分:-2)

您可以以模态方式推送视图,也可以使用像MZFormSheetController这样的好库。 Here's how it looks like

只是简单地展示你的观点。您还可以使背景透明化以及许多其他自定义。

YourPopupViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"PopupView"];


-(IBAction)buttonClick{
// present form sheet with view controller
[self mz_presentFormSheetController:vc animated:YES completionHandler:^(MZFormSheetController *formSheetController) {
   //do your login stuff
}];
}