iOS学习笔记(二):UILabel

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 //中间截断(即文字超出时省略中部)
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注