有一定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等常用的控件的使用哦。谢谢大家来看我的文章,请多指教哦。😁