您的位置:首页 > 产品设计 > UI/UE

UIViewController 切换及简单动画

2015-11-09 13:38 507 查看
UIViewController应该是我们最常用的。

那么最简单的切换方式是什么了?

 func presentViewController(viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)?)

同时可以设置一些简单动画,淡入淡出,翻页等等

我们首先创建一个项目,他会有一个自带的视图控制器ViewController

然后我们再创建视图控制器用来切换。

[objc] view
plaincopy

import UIKit  

  

class MyRootViewController: UIViewController {  

  

    override func viewDidLoad() {  

        super.viewDidLoad()  

  

        // Do any additional setup after loading the view.  

        self.view.backgroundColor=UIColor.lightGrayColor()  

          

        let btn=UIButton(frame: CGRectMake(20, 120, 320, 36))  

        btn.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)  

        btn.setTitle("返回", forState: UIControlState.Normal)  

        btn.addTarget(self, action: "back", forControlEvents: UIControlEvents.TouchDown)  

        self.view.addSubview(btn)  

          

    }  

  

    override func didReceiveMemoryWarning() {  

        super.didReceiveMemoryWarning()  

        // Dispose of any resources that can be recreated.  

    }  

      

  

    func back(){  

        self.dismissViewControllerAnimated(true, completion: nil)  

    }  

      

  

}  

我们可以看到这个类很简单就是一个UIViewController的子类。

给他创建button用来返回。

接下来,我们给自带的ViewController添加四个Button分别测试四种切换方式

[objc] view
plaincopy

override func viewDidLoad() {  

    super.viewDidLoad()  

      

    let btn=UIButton(frame: CGRectMake(20, 100, 320, 36))  

    btn.setTitle("垂直切换", forState: UIControlState.Normal)  

    btn.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)  

    btn.tag=90  

    btn.addTarget(self, action: "testAct:", forControlEvents: UIControlEvents.TouchDown)  

    self.view.addSubview(btn)  

      

      

    let btn1=UIButton(frame: CGRectMake(20, 150, 320, 36))  

    btn1.setTitle("旋转", forState: UIControlState.Normal)  

    btn1.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)  

    btn1.tag=91  

    btn1.addTarget(self, action: "testAct:", forControlEvents: UIControlEvents.TouchDown)  

    self.view.addSubview(btn1)  

      

    let btn2=UIButton(frame: CGRectMake(20, 200, 320, 36))  

    btn2.setTitle("淡入淡出", forState: UIControlState.Normal)  

    btn2.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)  

    btn2.tag=92  

    btn2.addTarget(self, action: "testAct:", forControlEvents: UIControlEvents.TouchDown)  

    self.view.addSubview(btn2)  

      

    let btn3=UIButton(frame: CGRectMake(20, 250, 320, 36))  

    btn3.setTitle("翻页", forState: UIControlState.Normal)  

    btn3.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)  

    btn3.tag=93  

    btn3.addTarget(self, action: "testAct:", forControlEvents: UIControlEvents.TouchDown)  

    self.view.addSubview(btn3)  

      

      

}  

button点击后对应的方法如下

[objc] view
plaincopy

func testAct(b:UIButton){  

    let rootVC=MyRootViewController()  

      

      

      

    if(b.tag==90){  

        rootVC.modalTransitionStyle = .CoverVertical  

    }else if(b.tag==91){  

        rootVC.modalTransitionStyle = .FlipHorizontal  

    }else if(b.tag==92){  

        rootVC.modalTransitionStyle = .CrossDissolve  

    }else if(b.tag==93){  

        rootVC.modalTransitionStyle = .PartialCurl  

    }  

      

    self.presentViewController(rootVC, animated: true, completion: nil)  

      

      

}  

其中modalTr5ansitionStyle 是一个枚举,有四个值,分别代表四种奇幻方式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: