Label(标签)是UI体系中最基础、最简单的控件,其主要作用是在屏幕视图上显示一行或多行文本。下面我们一起来看一下在UIKit框架中UILabel的各种常用属性。
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//定义一个label并设置label的坐标、大小
let label = UILabel(frame: CGRect(x:100, y:200, width:100,height:30))
//设置label显示的内容
label.text = "666"
//背景颜色
label.backgroundColor = UIColor.red
//设置字体与字号 UIFont.boldSystemFont(ofSize: 18)为粗体
label.font = UIFont.systemFont(ofSize: 23)
//设置字体的颜色
label.textColor = UIColor.blue
//设置对齐模式
label.textAlignment = .center
//设置阴影颜色
label.shadowColor = UIColor.green
//设置阴影偏移量,两个参数分别表示横、纵偏移量
label.shadowOffset = CGSize(width: 10, height: 10)
//设置断行模式
label.lineBreakMode = .byWordWrapping
//把label添加到主视图
self.view.addSubview(label)
}
}
运行结果如下图所示:
上述属性中,有两个属性值得特别提一下,它们分别是textAlignment属性与lineBreakMode属性。其中,textAlignment属性是设置UILabel控件上文字的对齐方式,默认为居中对齐。当然,你也可以自定义设置,下面是设置对齐模式所使用的枚举值:
public enum NSTextAlignment : Int{
case left //左对齐
case center //居中对齐
case right //右对齐
}
另外,lineBreakMode属性可以设置换行和截断模式。为了更好说明这个属性的作用,我们不妨来假设一种情况:如果我们label中文字长度超过了UILabel控件frame属性定义的宽度,在默认情况下,UILabel并不会换行,而是用省略号代替超出的部分。比如下图的情况:
默认的UILabel都是单行显示的,我们不妨先通过以下属性设置显示的行数:
label.numberOfLines = 0
将numberOfLines设置成一个整数值,代表支持多少行显示,若设置为0,则代表无限换行,直到文字结束或达到UILabel控件最底端为止。于是乎,上文提到的lineBreakMode属性可以设置换行与截断模式,这个属性设置值为NSLineBreakMode枚举,列举如下:
public enum NSLineBreakMode : Int{
case byWordWrapping //以单词为标准换行
case byCharWrapping //以字符为标准换行
case byTruncatingHead //头部截断(即文字超出时省略头部)
case byTruncatingTail //尾部截断(即文字超出时省略尾部)
case byTruncatingMiddle //中间截断(即文字超出时省略中部)
}