《Swift UIViewController 的切换跳转动画和 UIToolBar 的详细使
/* 《Swift UIViewController 的切换跳转动画和 UIToolBar 的详细使用》 */ /* 视图控制器间的跳转,在现在开发中还占有很大分量。但是,许多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,action: "itemtwo") //第三种 let item_three = UIBarButtonItem(image: UIImage(named: "ssd.png"),style: UIBarButtonItemStyle.Plain,action: "itemtwo") /* * 以上三种创建 UIBarButtonitem 的方式 */ // 将3个按钮,添加到工具栏上 self.setToolbarItems([item_one,item_two,item_three],animated: true) /* 运行效果,发现3个按钮,都挤在一块了,非常的不好看,现在,我们要求三个按钮不要在一起,而是等间距的分开,那怎么解决呢???继续向下看LOOK Down // 我要创建一个 UIBarButtonItem 的另一个控制对象 let sepace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace,action: nil) //再将 五个按钮 加入到工具栏中 ,现在可定会有人发出疑问,为什么是五个呢,请往下看 self.setToolbarItems([item_one,sepace,0)"> 运行结果发现,确实,三个按钮等间距分开,看了上面,你就明白为什么是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,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 的时候 会填充到状态栏的下面,否则,是填充状态栏左下角一下的区间 case PageSheet 要弹出的控制器的高度和当前屏幕高度相同,宽度和竖屏模式下屏幕宽度相同,剩余未覆盖区域将会变暗并阻止用户点击,这种弹出模式下,竖屏时跟 FullScreen的效果一样,横屏时候两边则会留下变暗的区域。 case FormSheet 要弹出的控制器的高度和宽度均会小于屏幕尺寸,presented VC居中显示,四周留下变暗区域。 case CurrentContext @available(iOS 7.0,0)"> case Custom 默认效果 @available(iOS 8.0,0)"> case OverFullScreen 要弹出的控制器,要覆盖整个手机屏幕 case OverCurrentContext 要弹出的控制器要覆盖的内容 case Popover case None } ???????????《---注意----了》???????????? 注意了:以上的效果,只有在 IPa 上面才有效果,在Iphone和Watch 上已经被同化 和 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. } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |