博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS界面篇
阅读量:4660 次
发布时间:2019-06-09

本文共 18249 字,大约阅读时间需要 60 分钟。

一、UIView与UIWindow的关系

就像大家看见的一样,UIView就是表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为iOS中几乎所有的可视控件都是UIView的子类。

UIView继承自UIResponder,它是负责显示的画布,如果说把window比作画框的话。我们就是不断地在画框上移除、更换或者叠加画布,或者在画布上叠加其他画布,大小当然由绘画者来决定了。有了画布,我们就可以在上面任意施为了。很多简单的东西我会把库里面的内容贴出来,如果东西太多贴出来就不太好,朋友们自己去库文件里面看吧。这个类在UIView.h里面哦。

UIView的功能 :

  • 管理矩形区域里的内容
  • 处理矩形区域中的事件
  • 子视图的管理
  • 还能实现动画
    UIView的子类也具有这些功能

窗口UIWindow是一个视图的子类。

窗口的主要功能:

一是提供一个区域来显示视图,二是将事件分发给视图。一个应用通常只有一个窗口,但也不例外。window对象有以下职责:它包含了应用程序的可视化的内容·它为视图和其他应用程序对象在触摸事件中提供了关键性的作用·它与视图控制器一起协作来呈现数据。

二、UIView的创建和属性

1.UIView的创建

定义一个全局的UIView对象

var myView:UIView?

2.UIView的属性方法

frame 是CGRect frame的origin是相对于父视图的左上角原点(0,0)的位置,改变视图的frame会改变center

center 是CGPoint 指的就是整个视图的中心点,改变视图的center也会改变frame
bounds 是CGRect 是告诉子视图本视图的原点位置(通俗的说就是,子视图的frame的origin与父视图的bounds的origin的差,就是子视图相对于父视图左上角的位置,如果结果为负,则子视图在父视图外)
通过addSubview:这个方法添加子类,不管谁添加它,只要越晚添加,视图就在越上层

let view1 = UIView(frame: CGRect(x: 10,y: 50,width: 200,height: 200))  view1.center = CGPoint(x: 100, y: 100)

一个 UIView 里面可以包含许多的 Subview(其他的 UIView),而这些 Subview 彼此之间是有所谓的阶层关系,这有点类似绘图软体中图层的概念,下面代码演示了几个在管理图层(Subview)上常用的方法。

//新增和移除SubView    myView?.removeFromSuperview()    myView?.addSubview(label)

在UIView中将Subview往前或是往后移动一个图层,往前移动会覆盖住较后层的 Subview,而往后移动则会被较上层的Subview所覆盖。

//将Subview往前移动一个图层(与它的前一个图层对调位置)  self.view.bringSubviewToFront(myView!)  //将Subview往后移动一个图层(与它的后一个图层对调位置)  self.view.sendSubviewToBack(myView!)
 
在UIView中使用索引Index交换两的Subview彼此的图层层级。
 
//交换两个图层self.view.exchangeSubviewAtIndex(index1, withSubviewAtIndex: index2)

使用Subview的变数名称取得它在UIView中的索引值(Index )。

//获取indexlet index = self.view.subviews.indexOf(subView名称)

替Subview加上NSInteger 的标记(Tag)好让之后它们分辨彼此。

//加上标记myView?.tag = 1//通过标记得到view 返回值为UIViewlet otherView = UIView().viewWithTag(1)

取得UIView中所有的Subview,呼叫此方法会传回一个 NSArray,并以由后往前的顺序列出这些 Subview。

UIView().subviews

3.UIView中要注意的那些事儿

在iOS应用上实现UI就需要子类化UIView,也就是要重写UIView的init方法。注意:两种语言有所区别。

Objective-C只需在UIView子类中重写必要的init方法。要初始化一个UIView框架,就要重写initWithFrame:框架,如下所示:

@implementation SubUIView -(id) initWithFrame:(CGRect)frame{     self = [super initWithFrame:frame];     if (self != nil) {        // ...     }    return self;  } @end
然而Swift需要多一些步骤来重写同一个init方法。首先,重写使用CGRect框架作为其参数的init方法。根据UIView文档,用Swift语言构建时,须重写init( coder: ),但我们不需要这种方法,就用如下代码处理。类属性初始化所需的代码可以在init( frame: )中执行。
class SubUIView: UIView {      override init(frame: CGRect) {          super.init(frame: frame)          // ...      }     required init?(coder aDecoder: NSCoder) {          fatalError("init(coder:) has not been implemented")     } }

当然,UIView的属性和用法还有很多很多,在以后的UI资料中还会多次介绍,希望大家关注哦。

三、UIWindow的创建和属性

1.UIWindow的创建

定义一个全局的UIWindow变量

var window:UIWindow?

2.UIWindow的属性介绍

UIWindow() 创建一个UIWindow对象 参数为 这个UIWindow的frame,下面我细说

self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

使被使用对象的主窗口显示到屏幕的最前端,注意:! 的意思是允许window==nil 时候运行,但是window==nil程序运行崩溃 !

self.window!.makeKeyAndVisible()

设置窗口的背景颜色

self.window!.backgroundColor = UIColor.redColor();

 

 

一、UILabel(文本标签)

UILabel主要是用来显示简短的文本。常用属性如下:

//创建一个文本标签并设置它的frame    let label = UILabel(frame: CGRect(x:10, y:50, width:200, height:200))    //设置文本标签的字体颜色为黑色    label.textColor = UIColor.black    //设置文本标签的文字    label.text = "我是萌萌哒"    //设置文本标签的文本显示位置为居中,还可以居左(Left)、居右(Right)、合乎情理的(Justified)、自然的(Natural)    label.textAlignment = .center    //自适应字体大小    label.adjustsFontSizeToFitWidth = true    //设置字体大小    label.font = UIFont.boldSystemFont(ofSize: 12)    //文本行数,为0就是自动换行    label.numberOfLines = 0    label.lineBreakMode = .byCharWrapping    //lineBreakMode属性的枚举下面会详细介绍    //是否能和用户交互    label.isUserInteractionEnabled=true    //文字是否可变,默认值是true    label.isEnabled=true;    //设置阴影颜色和偏移量    label.shadowColor = UIColor.blue    label.shadowOffset = CGSize(width:0.5, height:0.5)    //设置是否高亮和高亮颜色    label.isHighlighted = true    label.highlightedTextColor = UIColor.red

typedef enum {

UILineBreakModeWordWrap = 0,
UILineBreakModeCharacterWrap,//swift中已经没有这个属性了
UILineBreakModeClip,//截去多余部分
UILineBreakModeHeadTruncation,//截去头部
UILineBreakModeTailTruncation,//截去尾部
UILineBreakModeMiddleTruncation,//截去中间
} UILineBreakMode;

二、UIControl-所有具有事件处理控件的父类

控件主要响应的3中事件

  • 基于触摸的事件
  • 基于值的事件
  • 基于编辑的事件
    在UIControl中常用的事件有:UIControlEventTouchUpInside 如按钮的点击事件、UIControlEventValueChanged 如进度条拖动。

    1.属性

  • enable

    控件默认是启动的。要禁用控件,可以将enable设置成false,这将导致控件忽略任何触摸事件。被禁用后,控件还可以用不同的方式显示自己,比如变成灰色不可用。虽然是由控件的子类完成的,这个属性却存在于UIControl中。

control.enabled = true

selected

当用户选中控件时,UIControl类会将其selected属性设置为YES。子类有时使用这个属性来让控件选择自身,或者来表现不同的行为方式。

control.selected = true

contentVerticalAlignment

控件如何在垂直方向上布置自身的内容。默认是将内容顶端对其,对于文本字段,可能会改成UIControlContentVerticalAlignmentCenter。

control.contentVerticalAlignment = .bottomcontrol.contentVerticalAlignment = .centercontrol.contentVerticalAlignment = .fillcontrol.contentVerticalAlignment = .top

contentHorizontalAlignment

水平对齐方式

control.contentHorizontalAlignment = .bottomcontrol.contentHorizontalAlignment = .centercontrol.contentHorizontalAlignment = .fillcontrol.contentHorizontalAlignment = .top
  • 2.事件通知

  • UIControlEventTouchDown
    单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。
  • UIControlEventTouchDownRepeat
    多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。
  • UIControlEventTouchDragInside
    当一次触摸在控件窗口内拖动时。
  • UIControlEventTouchDragOutside
    当一次触摸在控件窗口之外拖动时。
  • UIControlEventTouchDragEnter
    当一次触摸从控件窗口之外拖动到内部时。
  • UIControlEventTouchDragExit
    当一次触摸从控件窗口内部拖动到外部时。
  • UIControlEventTouchUpInside
    所有在控件之内触摸抬起事件。
  • UIControlEventTouchUpOutside
    所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。
  • UIControlEventTouchCancel
    所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。
  • UIControlEventTouchChanged
    当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。
  • UIControlEventEditingDidBegin
    当文本控件中开始编辑时发送通知。
  • UIControlEventEditingChanged
    当文本控件中的文本被改变时发送通知。
  • UIControlEventEditingDidEnd
    当文本控件中编辑结束时发送通知。
  • UIControlEventEditingDidOnExit
    当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。
  • UIControlEventAlltouchEvents
    通知所有触摸事件。
  • UIControlEventAllEditingEvents
    通知所有关于文本编辑的事件。
  • UIControlEventAllEvents
    通知所有事件。
 

UIButton-按钮

按钮的创建

let button:UIButton = UIButton(type: UIButtonType.contactAdd)    button.frame = CGRect(x:100, y:100, width:100, height:100)    //设置按钮的背景颜色    button.backgroundColor = UIColor.cyan    //设置按钮的背景图片    button.setBackgroundImage(UIImage(named:"background"),for:.normal)    //对于Custom定制类型按钮,代码可简化为:    let button1 = UIButton(frame: CGRect(x:100, y:100, width:100, height:100))    //设置按钮文字    button.setTitle("点我一下", for: UIControlState.normal)    //设置button的点击事件    button.addTarget(self, action: #selector(ViewController.clickButton(_:)), for: UIControlEvents.TouchUpInside)    self.view.addSubview(button)

按钮有下面四种类型:

  • UIButtonType.ContactAdd:前面带“+”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
  • UIButtonType.DetailDisclosure:前面带“!”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
  • UIButtonType.System:前面不带图标,默认文字颜色为蓝色,有触摸时的高亮效果
  • UIButtonType.Custom:定制按钮,前面不带图标,默认文字颜色为白色,无触摸时的高亮效果
  • UIButtonType.InfoDark:为感叹号“!”圆形按钮
  • UIButtonType.InfoLight:为感叹号“!”圆形按钮

    按钮的文字设置

  • UIControlState.Normal:普通状态下的文字
  • UIControlState.Highlighted:触摸状态下的文字
  • UIControlState.Disabled:禁用状态下的文字

按钮文字颜色的设置

button.setTitleColor(UIColor.black,for: .normal) //普通状态下文字的颜色  button.setTitleColor(UIColor.green,for: .highlighted) //触摸状态下文字的颜色  button.setTitleColor(UIColor.gray,for: .disabled) //禁用状态下文字的颜色

按钮文字阴影颜色的设置

button.setTitleShadowColor(UIColor.green,for:.normal) //普通状态下文字阴影的颜色  button.setTitleShadowColor(UIColor.yellow,for:.highlighted) //普通状态下文字阴影的颜色  button.setTitleShadowColor(UIColor.gray,for:.disabled) //普通状态下文字阴影的颜色

 

按钮文字图标的设置

button.setImage(UIImage(named:"pic"),for:.normal)  //设置图标  button.adjustsImageWhenHighlighted=false //使触摸模式下按钮也不会变暗  button.adjustsImageWhenDisabled=false //使禁用模式下按钮也不会变暗
  • 常用的触摸事件类型

  • TouchDown:单点触摸按下事件,点触屏幕
  • TouchDownRepeat:多点触摸按下事件,点触计数大于1,按下第2、3或第4根手指的时候
  • TouchDragInside:触摸在控件内拖动时
  • TouchDragOutside:触摸在控件外拖动时
  • TouchDragEnter:触摸从控件之外拖动到内部时
  • TouchDragExit:触摸从控件内部拖动到外部时
  • TouchUpInside:在控件之内触摸并抬起事件
  • TouchUpOutside:在控件之外触摸抬起事件
  • TouchCancel:触摸取消事件,即一次触摸因为放上太多手指而被取消,或者电话打断
设置按钮的圆角
button.layer.masksToBounds = true  button.layer.cornerRadius = 6.0
设置按钮点击时高亮,默认点击时是高亮的状态
button.showsTouchWhenHighlighted = true

UIButton在开发的过程中应用比较多,以后还会继续补充的,请大家多多关注。

UITextField-文本输入框

1.文本输入框的创建

let textF = UITextField(frame: CGRect(x:50,y:300,width:100,height:30))  //设置文肯输入框的边框样式  textF.borderStyle = UITextBorderStyle.none  //设置文本框的提示文字  textF.placeholder="请输入"  //设置用*显示,比如密码 swift3.0废弃  // textF.secureTextEntry = true  //设置文本输入框的背景颜色  textF.backgroundColor = UIColor.white  self.view.addSubview(textF)

 

  • 文本框的样式:

  • UITextBorderStyle.None:无边框
  • UITextBorderStyle.Line:直线边框
  • UITextBorderStyle.RoundedRect:圆角矩形边框
  • UITextBorderStyle.Bezel:边线+阴影

    文字大小超过文本框长度时自动缩小字号
//当文字超出文本框宽度时,自动调整文字大小  textF.adjustsFontSizeToFitWidth=true   textF.minimumFontSize=14  //最小可缩小的字号

 

设置水平/垂直对齐方式

//水平对齐  textF.textAlignment = .right //水平右对齐 textF.textAlignment = .center //水平居中对齐 textF.textAlignment = .left //水平左对齐 // 垂直对齐  textF.contentVerticalAlignment = .top  //垂直向上对齐 textF.contentVerticalAlignment = .center  //垂直居中对齐 textF.contentVerticalAlignment = .bottom  //垂直向下对齐

 

设置背景图片
textF.borderStyle = UITextBorderStyle.none //先要去除边框样式 textF.background=UIImage(named:"background")

设置输入框右边的小叉叉(清除按钮)

textF.clearButtonMode=UITextFieldViewMode.whileEditing  //编辑时出现清除按钮 textF.clearButtonMode=UITextFieldViewMode.unlessEditing  //编辑时不出现,编辑后才出现清除按钮 textF.clearButtonMode=UITextFieldViewMode.always  //一直显示清除按钮

设置文本框关联的键盘类型

textF.keyboardType = UIKeyboardType.default  //系统默认的虚拟键盘  //显示英文字母的虚拟键盘  swift3.0废弃  // textF.keyboardType = UIKeyboardType.aSCIICapable    textF.keyboardType = UIKeyboardType.numbersAndPunctuation  //显示数字和标点的虚拟键盘  textF.keyboardType = UIKeyboardType.URL  //显示便于输入数字的虚拟键盘  textF.keyboardType = UIKeyboardType.numberPad  //显示便于输入数字的虚拟键盘  textF.keyboardType = UIKeyboardType.phonePad  //显示便于拨号呼叫的虚拟键盘  textF.keyboardType = UIKeyboardType.namePhonePad  //显示便于聊天拨号的虚拟键盘  textF.keyboardType = UIKeyboardType.emailAddress  //显示便于输入Email的虚拟键盘  textF.keyboardType = UIKeyboardType.decimalPad  //显示用于输入数字和小数点的虚拟键盘  textF.keyboardType = UIKeyboardType.twitter  //显示方便些Twitter的虚拟键盘  textF.keyboardType = UIKeyboardType.webSearch  //显示便于在网页上书写的虚拟键盘

使文本框在界面打开时就获取焦点,并弹出输入键盘

textF.becomeFirstResponder()

使文本框失去焦点,并收回键盘

textF.resignFirstResponder()

设置键盘return键的样式

textF.returnKeyType = UIReturnKeyType.done//表示完成输入  textF.returnKeyType = UIReturnKeyType.go //表示完成输入,同时会跳到另一页  textF.returnKeyType = UIReturnKeyType.search //表示搜索  textF.returnKeyType = UIReturnKeyType.join //表示注册用户或添加数据  textF.returnKeyType = UIReturnKeyType.next //表示继续下一步  textF.returnKeyType = UIReturnKeyType.send //表示发送。

键盘return键的响应

class ViewController: UIViewController,UITextFieldDelegate {  override func viewDidLoad() {      super.viewDidLoad()     let textField = UITextField(frame: CGRect(x:10,y:160,width:200,height:30))     //设置边框样式为圆角矩形     textField.borderStyle = UITextBorderStyle.roundedRect     textField.returnKeyType = UIReturnKeyType.done     textField.delegate=self     self.view.addSubview(textField)   }  func textFieldShouldReturn(_ textField:UITextField) -> Bool   {    //收起键盘    textField.resignFirstResponder()    return true;   }}

2.关于UITextField的attributedPlaceholder属性设置

我们在使用textfield的时候为了实现更美观的效果,常常会设置placeholder的相关属性,那就是attributedPlaceholder。
//创建属性字典,存放我们想要修改的属性  var attributes:[String:AnyObject] = NSMutableDictionary() as! [String:AnyObject]  attributes[NSFontAttributeName] = UIFont.systemFont(ofSize: 13)  //创建带属性的字符串  let string:NSAttributedString = NSAttributedString.init(string: "身份证号中含字母必须大写", attributes: attributes)  //设置placeholder的属性  textF.attributedPlaceholder = string

 

3.关于UITextField的光标的设置

这个demo中主要是实现以leftView为左边界,并且一直显示,使光标的位置右移。

let textF = UITextField(frame: CGRect(x:50,y:300,width:100,height:30))  textF.backgroundColor = UIColor.yellow  self.view.addSubview(textF)  textF.leftView = UIView(frame: CGRect(x:0,y:0,width:30,height:30))  textF.leftView?.backgroundColor = UIColor.blue  textF.leftViewMode = UITextFieldViewMode.always

4.UITextField的代理方法

//将要开始输入时调用 func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {     print("开始输入")     return true } func textFieldDidBeginEditing(_ textField: UITextField) {     print("已经开始输入") } //输入结束时调用 func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {     print("输入结束")     return true } func textFieldDidEndEditing(_ textField: UITextField) {     print("已经结束输入") } //清除文字按钮点击事件 func textFieldShouldClear(_ textField: UITextField) -> Bool {     print("清除输入内容")     return true } //键盘上的return按钮 func textFieldShouldReturn(_ textField: UITextField) -> Bool {     //隐藏输入键盘     textField.resignFirstResponder()     return true}

5.storyboard/xib中设置placeholder的颜色

我们在用storyboard/xib中可能会发现并没有设置textField的placeholder的颜色的属性,其实我们可以这样做:

设置placeholder.png

在keyPath中写入placeholderLabel.textColor,Type选择Color,Value就是设置自己喜欢的颜色啦。以后我们需要其他属性的时候也可以按照这种方法添加哦。

UIImagevIew-图像视图

1.图像视图的创建

let imageView = UIImageView(image:UIImage(named:"icon"))  imageView.frame = CGRect(x: 10, y: 10, width: 100, height: 100)  self.view.addSubview(imageView)  //修改图片  imageView.image = UIImage(named:"icon2")  //保持图片比例  imageView.contentMode = .scaleAspectFit

2.从文件目录中获取图片

let path = Bundle.main.path(forResource: "apple", ofType: "png")  let newImage = UIImage(contentsOfFile: path!)  let imageView = UIImageView(image:newImage)  self.view.addSubview(imageView)

3.从网络地址获取图片

//定义NSURL对象 let url = NSURL(string: "http://hangge.com/blog/images/logo.png") //从网络获取数据流 let data = NSData(contentsOf: url! as URL) //通过数据流初始化图片 let newImage = UIImage(data: data! as Data) let imageView = UIImageView(image:newImage); self.view.addSubview(imageView)

4.实现动画效果

class ViewController: UIViewController {       var imageView:UIImageView!       override func viewDidLoad() {       super.viewDidLoad()       imageView=UIImageView()       imageView.frame = CGRect(x: 10, y: 10, width: 100, height: 100)       //设置动画图片       imageView.animationImages=[UIImage(named:"icon")!,UIImage(named:"icon2")!]       //设置每隔0.5秒变化一次       imageView.animationDuration=0.5       self.view.addSubview(imageView) } override func viewWillAppear(_ animated: Bool) {    super.viewWillAppear(animated)    imageView.startAnimating() } override func viewWillDisappear(_ animated: Bool) {    super.viewWillAppear(animated)    imageView.stopAnimating() }  }

UITextView-多行文本输入框

1.UITextView的创建

let textview = UITextView(frame:CGRect(x: 10, y: 10, width: 100, height: 100))    textview.layer.borderWidth=1  //边框粗细    textview.layer.borderColor=UIColor.gray.cgColor //边框颜色    textview.backgroundColor = UIColor.clear //背景颜色    textview.backgroundColor = UIColor.clear    textview.isEditable = true //设置为可编辑状态    //可选范围    textview.selectedRange = NSRange(location: 0, length: Int.max)    //内容是否可选    textview.isSelectable=false    self.view.addSubview(textview)

2.UITextView的代理方法

UITextView的代理方法与UITextField的代理方法非常类似,在这里就不过多介绍了。大家千万不要忘记设置代理哦。{

{
{(>_<)}}}

func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {        print("开始输入")        return true   }   func textViewDidBeginEditing(_ textView: UITextView) {        print("已经开始输入")   }   func textViewShouldEndEditing(_ textView: UITextView) -> Bool {        print("输入结束")        return true   }   func textViewDidEndEditing(_ textView: UITextView) {        print("已经输入结束")   }    func textViewDidChange(_ textView: UITextView) {        print("已经改变")   }

UISwitch-开关按钮

let switch1 = UISwitch()    //设置开始位置    switch1.center = CGPoint(x:100, y:100)    //设置默认值    switch1.isOn = true    //添加事件    switch1.addTarget(self, action: #selector(ViewController.switchDidChange), for: .ValueChanged)

UISegmentedControl-分段选择器

//选项除了文字还可以是图片    let items=["Hello" as AnyObject,"World" as AnyObject,UIImage(named: "star")!] as [AnyObject]    let segmentedController=UISegmentedControl(items:items)    segmentedController.center=self.view.center    segmentedController.selectedSegmentIndex=1 //默认选中第二项    segmentedController.addTarget(self, action: Selector("segmentDidchange:"),for: UIControlEvents.valueChanged)  //添加值改变监听    self.view.addSubview(segmentedController)

定义点击事件方法

func segmentDidchange(segmented:UISegmentedControl){        //获得选项的索引        print(segmented.selectedSegmentIndex)        //获得选择的文字        print(segmented.titleForSegmentAtIndex(segmented.selectedSegmentIndex))    }

选择器中选项的添加、删除与修改

//添加文字选项   segmentedController.insertSegmentWithTitle("新增选项",atIndex:1,animated:true)   //添加图片选项   segmentedController.insertSegmentWithImage(UIImage(named:"icon")!,atIndex:1,animated: true)   //移除选项   segmentedController.removeSegmentAtIndex(1,animated:true)   //修改选项颜色,包括图片   segmentedController.tintColor=UIColor.blueColor()   //修改选项文字   segmentedController.setTitle("哎呦",forSegmentAtIndex:1)   //修改选项图片   segmentedController.setImage(UIImage(named:"icon"),forSegmentAtIndex:2)   //修改选项内容偏移位置   segmentedController.setContentOffset(CGSizeMake(10,7),forSegmentAtIndex:1)

UISlider-滑块

let slider=UISlider(frame:CGRectMake(0,0,300,50))   slider.center=self.view.center   slider.minimumValue=0  //最小值   slider.maximumValue=1  //最大值   slider.value=0.5  //当前默认值   //设置滑块的值,同时有动画   slider.setValue(0.8,animated:true)   slider.continuous=false  //滑块滑动停止后才触发ValueChanged事件   slider.addTarget(self,action:"sliderDidchange:", forControlEvents:UIControlEvents.ValueChanged)   self.view.addSubview(slider)

UIProgressView-进度条

// 创建进度条  var progressView=UIProgressView(progressViewStyle:UIProgressViewStyle.Default)  progressView.center=self.view.center  progressView.progress=0.5 //默认进度50%  self.view.addSubview(progressView)  //设置进度,同时有动画效果  progressView.setProgress(0.8,animated:true)  //改变进度条颜色  progressView.progressTintColor=UIColor.greenColor()  //已有进度颜色  progressView.trackTintColor=UIColor.blueColor()  //剩余进度颜色(即进度槽颜色)

UIStepper-微调器或叫步进器

super.viewDidLoad()    stepper=UIStepper()    stepper.center=self.view.center    //设置stepper的范围与初始值    stepper.maximumValue=10    stepper.minimumValue=1    stepper.value=5.5    //设置每次增减的值    stepper.stepValue=0.5    //设置stepper可以按住不放来连续更改值    stepper.continuous=true    //设置stepper是否循环(到最大值时再增加数值从最小值开始)    stepper.wraps=true    stepper.addTarget(self,action:"stepperValueIschanged",    forControlEvents: UIControlEvents.ValueChanged)    label=UILabel(frame:CGRectMake(100,100,300,30))    label.text = "当前值为:\(stepper.value)"

使用tintColor属性可以设置微调器的颜色。 而加减符号图标,背景图片,中间分割线图片都可以替换成自己图片

//用自定义的图片替换“-”和“+”stepper.setDecrementImage(UIImage(named: "sub.png"),forState: UIControlState.Normal)stepper.setIncrementImage(UIImage(named: "add.png"), forState: UIControlState.Normal)

 

转载于:https://www.cnblogs.com/jona/p/7666049.html

你可能感兴趣的文章
理解 YOLO
查看>>
检查Linux文件变更Shell脚本
查看>>
ActiveMQ中JMS的可靠性机制
查看>>
oracle操作字符串:拼接、替换、截取、查找
查看>>
”语义“的理解
查看>>
210. Course Schedule II
查看>>
月薪3000与月薪30000的文案区别
查看>>
使用spring dynamic modules的理由
查看>>
Leetcode 117 Populating Next Right Pointers in Each Node 2
查看>>
C++ Primer 第四版中文版
查看>>
变量关系
查看>>
NTP工作机制及时间同步的方法
查看>>
近段时间学习html和CSS的一些细碎总结
查看>>
第三章 栈和队列
查看>>
「Vue」v-html生成的图片大小无法调整的解决办法
查看>>
【BZOJ 4665】 4665: 小w的喜糖 (DP+容斥)
查看>>
Git 的 .gitignore 配置
查看>>
Language Integrated Query ----序
查看>>
【HDU】1542 Atlantis
查看>>
解决Android SDK Manager更新时出现问题
查看>>