2017-03-18 2 views
1

탐색 바의 오른쪽 상단에 바 버튼 항목이 있습니다. 글꼴을 변경할 수는 있지만 문자 간격은 변경할 수 없습니다. 이것은 내가 사용했던 코드이며, 그것은 단지 글꼴을 변경 : UIBarButtonItem에 문자 간격을 어떻게 추가합니까?

let font = UIFont(name: "Avenir-Light", size: 22) 
let attributes = [NSFontAttributeName: font!, 
         NSKernAttributeName : CGFloat(10.0)] as [String : Any] 
newListBarButtonItem.setTitleTextAttributes(attributes, for: .normal) 

나는 내보기 컨트롤러의 viewDidLoad에서 위를 쓴 단지 폰트가 아닌 문자 간격을 변경했습니다.

은 또한 다음과 같은 노력하지만 글꼴이나 글자 간격은 변경되지 않았다

UIBarButtonItem.appearance().setTitleTextAttributes(attributes,for: .normal) 

답변

1

당신은 항상 BarButtonItem customView에 UIView의 아이를 추가 할 수 있습니다. 예를 들어 포맷됩니다있는 UIButton은 당신이 원하는 방법 :

extension UIButton { 
    func addTextSpacing(spacing: CGFloat) { 
     guard let text = self.titleLabel?.text else { return } 
     let attributedString = NSMutableAttributedString(string: text) 
     attributedString.addAttribute(NSKernAttributeName, 
            value: spacing, 
            range: NSRange(location: 0, length: text.characters.count)) 
     self.setAttributedTitle(attributedString, for: .normal) 
} 

}

결과 :

enter image description here

+0

니스 여기

class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let spacedButton = UIButton(type: .system) spacedButton.setTitle("Button", for: .normal) spacedButton.addTextSpacing(spacing: 6.0) spacedButton.sizeToFit() let barButton = UIBarButtonItem(customView: spacedButton) self.navigationItem.rightBarButtonItem = barButton } } 

가있는 UIButton에 대한 확장입니다 해결책! 완료를 위해서 : 당신은 새로운 spacedButton에 목표를 설정해야 할 것이다. – inf1783

관련 문제