1. 程式人生 > >swift之UILabel用法詳解

swift之UILabel用法詳解

//1.建立

let label=UILabel(frame:CGRect(origin:CGPoint(x:100,y:100),size:CGSize(width:200,height:100)))

//label.frame = CGRect(origin: CGPoint(x:100,y:100),size: CGSize(width:200,height:40))

        label.backgroundColor=UIColor.green

//2、設定和讀取文字內容,預設為nil

        label.text ="1234545874573852345343"

// 3、設定文字顏色,預設為黑色

        label.textColor =UIColor.red

// 4font設定文字大小,預設為17

        label.font=UIFont.systemFont(ofSize:20)//一般方法

        label.font=UIFont.boldSystemFont(ofSize:20)//加粗方法

        label.font=UIFont.init(name:"Avenir-Oblique", size: 20)////指定字型的方法

// 5textAlignment設定標籤文字對齊方式

        label.textAlignment =

NSTextAlignment.center

// 6numberOfLines標籤最多顯示行數,如果為0則表示多行

        label.numberOfLines =2

// 7enabled只是決定了Label的繪製方式,將它設定為NO時文字變暗,表示沒有啟用,這是向她設定顏色值都是無效的。

//label.isEnabled = false

// 8highlighted是否高亮顯示

        label.isHighlighted =true

        label.highlightedTextColor=UIColor.yellow//高亮顯示時候的文字顏色

// 9ShadowColor設定陰影顏色

        label.shadowColor=UIColor.blue

// 10ShadowOffset設定陰影偏移量

        label.shadowOffset =CGSize(width: -1, height:1)

// 11baselineAdjustment如果==YES,控制文字基線的行為

/*

         UIBaselineAdjustmentAlignBaselines = 0, // default. used when shrinking text to position based on the original baseline預設,文字最上端與中線對齊。

         UIBaselineAdjustmentAlignCenters, //文字中線與label中線對齊。

         UIBaselineAdjustmentNone, //文字最低端與label中線對齊。

         */

        label.baselineAdjustment =UIBaselineAdjustment.none

// 12Autoshrink是否自動收縮

/*

         Fixed Font Size預設,如果label寬度小於文字長度時,文字大小不自動縮放

         minimumScaleFactor設定最小收縮比例,如果Label寬度小於文字長度時,文字進行收縮,收縮超過比例後,停止收縮。

        */

        label.minimumScaleFactor =0.5

        label.adjustsFontSizeToFitWidth =true// 13adjustsLetterSpacingToFitWidth改變字母之間的間距來適應Label大小

// 14lineBreakMode設定文字過長時的顯示格式

//label.lineBreakMode = NSLineBreakMode.byCharWrapping//以字元為顯示單位顯示,後面部分省略不顯示

//        label.lineBreakMode=NSLineBreakMode.byClipping//剪下與文字寬度相同的內容長度,後半部分被刪除。

//        label.lineBreakMode=NSLineBreakMode.byTruncatingHead//前面部分文字以……方式省略,顯示尾部文字內容。

//        label.lineBreakMode=NSLineBreakMode.byTruncatingMiddle//中間的內容以……方式省略,顯示頭尾的文字內容。

//        label.lineBreakMode=NSLineBreakMode.byTruncatingTail//結尾部分的內容以……方式省略,顯示頭的文字內容。

//        label.lineBreakMode=NSLineBreakMode.byWordWrapping//以單詞為顯示單位顯示,後面部分省略不顯示。

// 16attributedText設定標籤屬性文字

let text:NSString ="will.JJ"

let textLabelStr =NSMutableAttributedString.init(string: textasString)

let bodyFont = [NSFontAttributeName:UIFont.preferredFont(forTextStyle:UIFontTextStyle.body)]

        textLabelStr.setAttributes(bodyFont, range:NSMakeRange(2,5))

        label.attributedText = textLabelStr;

// 17、豎排文字顯示每個文字加一個換行符,這是最方便和簡單的實現方式。

//        label.text="\n\n\n\n\n\n\n\n\n"

//        label.numberOfLines=0

// 18、計算UILabel隨字型多行後的高度

let bounds:CGRect=CGRect(origin:CGPoint(x:100,y:100),size:CGSize(width:200,height:100))

let heightLabel:CGRect = label.textRect(forBounds: bounds, limitedToNumberOfLines:1)//計算20行之後的LabelFrame

print("%f",heightLabel.size.height)

// 19UILabel根據字數多少自動實現適應高度

let msgLabel=UILabel(frame:CGRect(origin:CGPoint(x:100,y:300),size:CGSize(width:200,height:100)))

        msgLabel.text ="用於管理內容的繪製有關的物件顯示在一個滾動檢視應該瓦片的內容的子檢視,以便沒有檢視超過螢幕的大小。當用戶在滾動滾動檢視,這個物件應該新增和刪除子檢視是必要的。"

//建立NSMutableAttributedString

//        let attributesString = NSMutableAttributedString.init(string: label.text!)

//        //建立NSMutableParagraphStyle

//        let paraghStyle = NSMutableParagraphStyle()

//        //設定行距(同樣著這裡可以設定行號,間距,對其方式)

//        paraghStyle.lineSpacing = 10

//        //新增屬性,設定行間距

//        attributesString.addAttributes([NSParagraphStyleAttributeName : paraghStyle], range: NSMakeRange(0, (label.text?.characters.count)!))

//        label.attributedText = attributesString

        msgLabel.font =UIFont.systemFont(ofSize:14

        )

        msgLabel.textColor =UIColor.red

let string:NSString = msgLabel.text!asNSString

let options:NSStringDrawingOptions = .usesLineFragmentOrigin

let boundingRect = string.boundingRect(with:CGSize(width: 200,height:0), options: options, attributes:[NSFontAttributeName:msgLabel.font], context:nil)

        msgLabel.frame =CGRect(origin: CGPoint(x:100,y:230),size:CGSize(width:200,height:boundingRect.height))

        msgLabel.numberOfLines =0;

        msgLabel.lineBreakMode =NSLineBreakMode.byWordWrapping

self.view.addSubview(msgLabel)

// 20、漸變字型Label

//let img:UIImage = UIImage.init(named: "btn.png")!

//let titleColor:UIColor = UIColor.init(patternImage: img)

let titleColor:UIColor=UIColor.init(patternImage:UIImage.init(named:"btn.png")!)

let title:NSString="Setting"

let titleLabel:UILabel=UILabel.init(frame:CGRect(origin: CGPoint(x:100,y:400),size:CGSize(width:80,height:44)))

        titleLabel.textColor = titleColor

        titleLabel.text = titleasString

        titleLabel.font=UIFont.boldSystemFont(ofSize:20)

        titleLabel.backgroundColor=UIColor.clear

self.view.addSubview(titleLabel)

// 21Label新增邊框

        titleLabel.layer.borderColor=UIColor.gray.cgColor

        titleLabel.layer.borderWidth=2

// 22、設定圓角

        titleLabel.layer.cornerRadius=10

        titleLabel.backgroundColor=UIColor.cyan

// 23、設定背景色圓角

        titleLabel.clipsToBounds =true

view.addSubview(label)