本文將演示給標籤物件新增描邊效果,在專案資料夾上,點選滑鼠右鍵選單,

選擇【Create File】->【Cocoa Touch Class】->【Next】->

【Class】:MyLabel

【Subclass of 】:UILabel

【Language】:Swift

->【Next】->【Create】

 1 import UIKit
 2 
 3 class MyLabel: UILabel {
 4 
 5     //首先過載父類的繪圖方法,
 6     //這樣就可以從底層來定義標籤的形狀
 7     override func draw(_ rect: CGRect) {
 8         // Drawing code
 9         //獲取當前圖形環境的上下文
10         let context = UIGraphicsGetCurrentContext()
11         //設定在上下文中,文字的渲染模式為描邊模式
12         context?.setTextDrawingMode(CGTextDrawingMode.stroke)
13         
14         //設定文字描邊的邊框寬度為2
15         context?.setLineWidth(2)
16         //設定文字描邊的頂點連線方式為圓角方式
17         context?.setLineJoin(CGLineJoin.round)
18         //設定文字的描邊顏色為白色
19         self.textColor = UIColor.white
20         //將文字的描邊資訊,繪製在指定區域內
21         super.drawText(in: rect)
22         
23         //設定在上下文中,文字渲染模式為填充
24         context?.setTextDrawingMode(CGTextDrawingMode.fill)
25         //建立一個顏色為黑色的顏色物件
26         let textColor = UIColor.black
27         //設定文字顏色為黑色
28         self.textColor = textColor
29         //將文字的填充資訊,繪製在指定區域內
30         super.drawText(in: rect)
31     }
32 }

在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】

現在開始新增自定義標籤,並新增到當前檢視控制器的根檢視

 1 import UIKit
 2 
 3 class ViewController: UIViewController {
 4 
 5     override func viewDidLoad() {
 6         super.viewDidLoad()
 7         // Do any additional setup after loading the view, typically from a nib.
 8         //初始化一個自定義標籤物件
 9         let label = MyLabel()
10         //設定自定義標籤的位置在(120,180),尺寸為(240,120)
11         label.frame = CGRect(x: 120, y: 180, width: 240, height: 120)
12         //設定自定義標籤的文字內容
13         label.text = "Enter >"
14         //設定自定義標籤物件的字型和大小
15         label.font = UIFont(name: "Georgia", size: 56)
16         
17         //將自定義標籤物件,新增到當前檢視控制器的根檢視
18         self.view.addSubview(label)
19         //設定檢視的背景顏色為紫色,以突出顯示標籤中的文字內容
20         self.view.backgroundColor = UIColor.purple
21     }
22 
23     override func didReceiveMemoryWarning() {
24         super.didReceiveMemoryWarning()
25         // Dispose of any resources that can be recreated.
26     }
27 }