Swift基础之常用的UI控件(一)

有一定iOS基础的小伙伴们一定知道,在开发的过程中UI控件是必不可少的。那么在swift中UI控件都是怎么创建和使用的呢?
在这篇文章中我会介绍有关UILabel、UIButton、UITextField、UISwitch、UISlider、UIToolbar、UIProgressView和UIAlertView等常用的控件的使用。

一、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.systemFont(ofSize: 12)
    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

    // lineBreakMode属性
    public enum NSLineBreakMode : Int {
       case byWordWrapping // Wrap at word boundaries, default
       case byCharWrapping // Wrap at character boundaries
       case byClipping // Simply clip
       case byTruncatingHead // Truncate at head of line: "...wxyz"
       case byTruncatingTail // Truncate at tail of line: "abcd..."
       case byTruncatingMiddle // Truncate middle of line:  "ab...yz"
   }

二、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、UITextField、UISwitch、UISlider、UIToolbar、UIProgressView和UIAlertView等常用的控件的使用哦。谢谢大家来看我的文章,请多指教哦。

你可能感兴趣的:(Swift基础之常用的UI控件(一))