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

前端之家收集整理的这篇文章主要介绍了《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 上面才有效果,在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相关文章