2017-11-01 1 views
1

내가 확장을 쓰기 위해 노력하고있어 세계적으로 글꼴 크기를 변경하는 방법, 변경 UIControl 구성 요소 글꼴 크기 , 및 UITableView 섹션 머리글 구성 요소를 확장하여 모든 유형의 텍스트 글꼴의 모든 하위 뷰를 변경하도록합니다.아이폰 OS

답변

5

모든보기의 하위보기로 이동하려면 재귀 구현이 필요합니다. 확장자는 UIView이어야하며 UIViewController이 아니어야합니다.

extension UIView { 
    func changeFontSize(){ 
     let fontSize = CGFloat(10) 
     if let v = self as? UIButton { 
      v.titleLabel?.font = v.titleLabel?.font.withSize(fontSize) 
     } else if let v = self as? UILabel { 
      v.font = v.font.withSize(fontSize) 
     } else if let v = self as? UITextField { 
      v.font = v.font?.withSize(fontSize) 
     } else { 
      for v in subviews { 
       v.changeFontSize() 
      } 
     } 
    } 
} 

당신은 간단한 할 일 뷰 컨트롤러에 전화를하려면 :

someViewController.view.changeFontSize() 
+0

에서 적응, 그것은 큰 ... 덕분에, 재귀 스타일에 대한 좋은 아이디어를 작동합니다. – DeyaEldeen

2

또 다른 일반적인 옵션은 하위 뷰으로 UIButton의 사용 UILabel 이후 UIAppearance

그리고를 사용하는 것입니다, 그것은 거기에서도 일할 것입니다.

extension UILabel { 
    var defaultFont: UIFont? { 
     get { return self.font } 
     set { self.font = newValue } 
    } 
} 


UILabel.appearance().defaultFont = UIFont.systemFont(ofSize: 25) 

UITextField 및 다른 컨트롤에 대해 반복하십시오.

https://stackoverflow.com/a/36324142/127422

참조 난 그냥이 시도 NSHipster's post on UIAppearance

+0

내가 UIAppearance를 공부할 때, 그것이 일을하든 안하든 당신에게 말할 것이다. – DeyaEldeen