《Swift UIViewController 的切换跳转动画和 UIToolBar 的详细使用》

/*

       Swift   UIViewController 的切换跳转动画和 UIToolBar 的详细使用》

*/

《Swift UIViewController 的切换跳转动画和 UIToolBar 的详细使用》_第1张图片

/*

    视图控制器间的跳转,在现在开发中还占有很大分量。但是,许多App 却不适用控制器间的跳转动画,今天我们还是要学习的。还有,在开发过程中,被我们忽视的工具栏的使用说明。

*/

//  Created by 周双建 on 15/12/6.

//  Copyright © 2015 周双建. All rights reserved.

//


import UIKit


class ViewController: UIViewController {


    override func viewDidLoad() {

        super.viewDidLoad()

        //设置颜色

        self.view.backgroundColor = UIColor.whiteColor()

        //要实现,一个控制器跳转到另一个控制器,我们首先创建一个驱动事件的按钮

        let  Btn_ZSJ = UIButton(type: UIButtonType.Custom) as UIButton

        Btn_ZSJ.frame = CGRectMake(40, 100, self.view.frame.size.width-80, 40)

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

         Btn_ZSJ.setTitle("跳转第二个", forState: UIControlState.Normal)

        Btn_ZSJ.addTarget(self, action: "Jamp", forControlEvents: UIControlEvents.TouchUpInside)

        self.view.addSubview(Btn_ZSJ)

/****************************************************************/

        //下面我们介绍  UIToolBar 的详细使用和自定义

        //目前,Xcode 默认在创建控制器的时候,时将其隐藏的,现在我们要将其显示

        //UIToolBar 的显示  (注意:系统要以导航控制器管理状态下显示)

        self.navigationController?.toolbarHidden = false

/***************************************************************/

        //要在工具栏上添加按钮 3 个以不同方式创建的按钮

        //第一种

        let  item_one = UIBarButtonItem(title: "分享", style: UIBarButtonItemStyle.Done, target: self, action: "itemone")

        //第二种

        let   item_two = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, target: self, action: "itemtwo")

        //第三种

        let   item_three = UIBarButtonItem(image: UIImage(named: "ssd.png"), style: UIBarButtonItemStyle.Plain, target: self, action: "itemtwo")

        /*

        * 以上三种创建  UIBarButtonitem 的方式

        */

        // 3个按钮,添加到工具栏上

        self.setToolbarItems([item_one,item_two,item_three], animated: true)

        /*

           运行效果,发现3个按钮,都挤在一块了,非常的不好看,现在,我们要求三个按钮不要在一起,而是等间距的分开,那怎么解决呢???继续向下看LOOK  Down

        */

        // 我要创建一个  UIBarButtonItem 的另一个控制对象

        let  sepace  = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: self, action: nil)

        //再将 五个按钮 加入到工具栏中  ,现在可定会有人发出疑问,为什么是五个呢,请往下看

        self.setToolbarItems([item_one,sepace,item_two,sepace,item_three], animated: true)

        /*

            运行结果发现,确实,三个按钮等间距分开,看了上面,你就明白为什么是5个咯

         */

/******************************************************************/

        //  由于现在的需求千变万化,所以系统的工具栏,就不能满足我们的需求,那么我们怎么办?那就自定义一个楼

        //  首先 我们已经 使用了系统的工具栏  我们要将其隐藏

          self.navigationController?.toolbarHidden = true

        //然后,我们要创建3个按钮  ,就是用上 面的3个了

        // 创建一个  UIToolBar 的对象

        let  Tool_ZSJ = UIToolbar(frame: CGRectMake(10,200,self.view.frame.size.width-20 ,44))

        //再将创建的  5个按钮添加到  Tool_ZSJ 上面

        Tool_ZSJ.setItems([item_one,sepace,item_two,sepace,item_three], animated: true)

        //然后,再将工具栏添加到 主控制器的View上面

        self.view.addSubview(Tool_ZSJ)

        

        // Do any additional setup after loading the view, typically from a nib.

    }

/****************************************************************/

    //实现第一个控制器向第二个控制器跳转

    func Jamp(){

        //获取跳转对象

        let TVC = TwoViewController()

        //设置跳转动画

        /*

        public enum UIModalTransitionStyle : Int {

        

        case CoverVertical  效果是   第二个控制器从下面弹出的效果

        case FlipHorizontal 效果是   中心对称轴翻转

        case CrossDissolve  效果是   淡出

        @available(iOS 3.2, *)

        case PartialCurl    效果是   翻页的效果

        }


        */

        TVC.modalTransitionStyle = .PartialCurl

        //另一种跳转风格

        /*

        public enum UIModalPresentationStyle : Int {

        

        case FullScreen          效果是 要弹出的控制器会充满全屏,但是当  wantsFullScreenLayout  设置为true 的时候  会填充到状态栏的下面,否则,是填充状态栏左下角一下的区间

        @available(iOS 3.2, *)

        case PageSheet   要弹出的控制器的高度和当前屏幕高度相同,宽度和竖屏模式下屏幕宽度相同,剩余未覆盖区域将会变暗并阻止用户点击,这种弹出模式下,竖屏时跟 FullScreen的效果一样,横屏时候两边则会留下变暗的区域。

        @available(iOS 3.2, *)

        case FormSheet   要弹出的控制器的高度和宽度均会小于屏幕尺寸,presented VC居中显示,四周留下变暗区域。

        @available(iOS 3.2, *)

        case CurrentContext

        @available(iOS 7.0, *)

        case Custom            默认效果

        @available(iOS 8.0, *)

        case OverFullScreen   要弹出的控制器,要覆盖整个手机屏幕

        @available(iOS 8.0, *)

        case OverCurrentContext  要弹出的控制器要覆盖的内容

        @available(iOS 8.0, *)

        case Popover

        @available(iOS 7.0, *)

        case None

        }

        ???????????《---注意----了》????????????

        注意了:以上的效果,只有在 IPa 上面才有效果,在IphoneWatch 上已经被同化   modalTransitionStyle CoverVertical  的效果一样

        ????????????????????????????????

        */

        TVC.modalPresentationStyle = .FormSheet

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

        

    }

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }



}


你可能感兴趣的:(自定义,swift,UIToolbar,控制器的切换动画)