2017-09-26 36 views
6

Upto iOS 10, phông chữ cho tính năng uibarbuttonitem bị tắt và kích hoạt vẫn giữ nguyên, chỉ có màu khác. Nhưng, sau khi tôi cài đặt ứng dụng của mình trên thiết bị có ios 11, phông chữ cho chế độ tắt được cập nhật (hiển thị phông chữ hệ thống), trong khi ở chế độ được bật, nó hiển thị phông chữ phù hợp mà tôi đã đặt.Cập nhật phông chữ UIBarbuttonItem khi bị tắt - iOS 11

Vì vậy, đối với trường hợp iOS 11, Làm cách nào tôi có thể đặt phông chữ cho chế độ bị tắt để giữ tính nhất quán trong ứng dụng.

Trả lời

7

Điều này dường như đã thay đổi trong iOS 11, ít nhất trong trường hợp tôi đang sử dụng giao thức UIAppearance. Không chắc chắn nếu đây là một lỗi hoặc cố ý.

Tôi cũng thấy rằng tôi không thể che các giá trị cùng nhau (chẳng hạn như .normal|.disabled) vì nó có nghĩa là nó sẽ chỉ áp dụng phông chữ nếu điều khiển hài lòng tất cả trạng thái.

Vì vậy, tôi đã kết thúc làm điều này:

for controlState in [UIControlState.normal, UIControlState.disabled, UIControlState.focused, UIControlState.highlighted, UIControlState.selected] { 
    barButton.setTitleTextAttributes([NSFontAttributeName: customFontName], for: controlState) 
} 

Đối cập nhật nó ở khắp mọi nơi bằng cách sử dụng giao thức UIAppearance:

for controlState in [UIControlState.normal, UIControlState.disabled, UIControlState.focused, UIControlState.highlighted, UIControlState.selected] { 
    UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: customFontName, for: controlState); 
} 
Các vấn đề liên quan