2016-09-01 27 views
0

我在下面的代碼中提到的UILabel擴展定義的一些功能改變字體不通過的UILabel擴展

before: 17.0 
after: 7.0 

但字體大小真的不會改變。與setBold函數發生同樣的事情。但是,setSecondaryColor反映了改變的顏色。

那麼如何通過擴展來改變字體呢?

回答

0

我測試了你的代碼,效果很好。

enter image description here

enter image description here

你有沒有錯過什麼重要的事?檢查我的代碼,可能會發現。

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)") 
    } 
} 
+0

使用我的確切代碼,你可以得到一些錯誤,因爲我在Swift 3.0中鍵入我的代碼... – pedrouan

0

調用viewDidLayoutSubviews裏面的代碼的確有竅門。

override func viewDidLayoutSubviews() { 

     myLabel.setBold() 

    }