单击按钮时如何显示另一个UIView

时间:2014-01-31 12:08:15

标签: ios uiview uiviewcontroller

我有一个UIViewController,我有另一个UIView。我想要做的是当按下一个按钮时,UIView会出现在主UIViewController上滑动。

我试过了:

[self.view setFrame: CGRectMake(-280.0f, 0.0f, 320.0f, 568.0f)];
[self.view addSubview:view_secondScreen];

它沿着子视图移动整个UIViewController。任何人都可以指导我如何使第二个视图出现?我会非常感激。

4 个答案:

答案 0 :(得分:0)

您想要做的事情听起来像UINavigationController的标准pushViewController方法。

你想做的是

[self pushViewController:viewControllerSecondScreen animated:YES];

但要实现这一点,你需要将第二个UIView包装在UIViewController

答案 1 :(得分:0)

使用这个简单的动画留下幻灯片动画。

-(void)addLeftSlideAnimationForButton:(UIView*)yourView
{      
    CABasicAnimation *moveAnimation = [CABasicAnimation animationWithKeyPath:@"position"];
    moveAnimation.duration = 0.02;
    moveAnimation.repeatCount=0;
    moveAnimation.autoreverses=NO;
    moveAnimation.fromValue= [NSValue valueWithCGPoint:CGPointMake(0.0, 0.0)];
    moveAnimation.toValue=[NSValue valueWithCGPoint:CGPointMake(-280.0f, 0.0)];
    [yourView.layer addAnimation:moveAnimation forKey:@"animatePosition"];
}

并通过调用此方法删除动画。

-(void)removeLeftSlideAnimationForButton:(UIView*)yourView
{
    [yourView.layer removeAnimationForKey:@"animatePosition"];
}

通过..调用上述方法

//[self.view setFrame: CGRectMake(-280.0f, 0.0f, 320.0f, 568.0f)]; // comment this line
[self.view addSubview:view_secondScreen];
[self addLeftSlideAnimationForButton:view_secondScreen]

答案 2 :(得分:0)

如果要在同一个UIViewController中的两个不同的UIView中显示不同的UI组件,有几种可能的方法。

  1. 您可以使用UISegmentedControl
  2. 您已经实现了不同的UIButton并在UIViewController中显示/删除UIView。
  3. 你需要为两个不同的UIViews提供2个不同的XIB文件,并选择一个按钮,将该特定的UIView添加为UIViewController的子视图,并从superview中删除早期的UIView。

    我更喜欢使用UISegmentedControl。

    希望这有帮助。

答案 3 :(得分:0)

基本上有两种方法可以在父视图上添加视图 1-您可以添加为您正在进行的子视图,如果是这种情况,则必须在视图中添加第二个视图时为其设置动画。 2-如果你想继续下一个活动,这个更好,意思是你可以在appdelegate中添加一个导航控制器,在你的rootviewcontroller属性中你可以设置你的视图。 然后,当您想要进入第二个视图时,可以在第一个视图上推送第二个视图。 那么告诉我你的应用程序中你想要什么样的选项?