• IOS界面篇


    一、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, 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 )。

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

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

    //加上标记
    myView?.tag = 1
    //通过标记得到view 返回值为UIView
    let 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, 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(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 = .bottom
    control.contentVerticalAlignment = .center
    control.contentVerticalAlignment = .fill
    control.contentVerticalAlignment = .top

    contentHorizontalAlignment
    水平对齐方式

    control.contentHorizontalAlignment = .bottom
    control.contentHorizontalAlignment = .center
    control.contentHorizontalAlignment = .fill
    control.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, 100, height:100)
        //设置按钮的背景颜色
        button.backgroundColor = UIColor.cyan
        //设置按钮的背景图片
        button.setBackgroundImage(UIImage(named:"background"),for:.normal)
        //对于Custom定制类型按钮,代码可简化为:
        let button1 = UIButton(frame: CGRect(x:100, y:100, 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,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,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,100,height:30))
      textF.backgroundColor = UIColor.yellow
      self.view.addSubview(textF)
      textF.leftView = UIView(frame: CGRect(x:0,y:0,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,  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,  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,  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)
    
  • 相关阅读:
    求全排列,调用C++函数
    ZOJ 3508 (the war)
    HDU 1285
    SDUT--枚举(删数问题)
    SDUT--进制转换
    位运算
    [NOI2015]软件包管理器
    列队[noip2017]
    [APIO2007]动物园
    [NOI2001]炮兵阵地
  • 原文地址:https://www.cnblogs.com/jona/p/7666049.html
Copyright © 2020-2023  润新知