0
我在下面的代碼中提到的UILabel
擴展定義的一些功能改變字體不通過的UILabel擴展
before: 17.0
after: 7.0
但字體大小真的不會改變。與setBold
函數發生同樣的事情。但是,setSecondaryColor
反映了改變的顏色。
那麼如何通過擴展來改變字體呢?
我在下面的代碼中提到的UILabel
擴展定義的一些功能改變字體不通過的UILabel擴展
before: 17.0
after: 7.0
但字體大小真的不會改變。與setBold
函數發生同樣的事情。但是,setSecondaryColor
反映了改變的顏色。
那麼如何通過擴展來改變字體呢?
我測試了你的代碼,效果很好。
你有沒有錯過什麼重要的事?檢查我的代碼,可能會發現。
import UIKit
class MyCell : UITableViewCell {
@IBOutlet weak var myLabel: UILabel!
}
class TableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 20
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyCell
cell.myLabel.text = "ABC \(indexPath.row)"
cell.myLabel.decreaseFontSize()
return cell
}
}
extension UILabel{
func decreaseFontSize() {
print("before: \(self.font.pointSize)")
self.font = UIFont(name: self.font.fontName, size: self.font.pointSize-10)!
print("after: \(self.font.pointSize)")
}
}
調用viewDidLayoutSubviews
裏面的代碼的確有竅門。
override func viewDidLayoutSubviews() {
myLabel.setBold()
}
使用我的確切代碼,你可以得到一些錯誤,因爲我在Swift 3.0中鍵入我的代碼... – pedrouan