Tôi đã gặp sự cố tương tự. Tôi nghi no la một con bọ.
Bạn có thể quét radar này http://openradar.appspot.com/radar?id=5334033567318016, đề cập đến ứng dụng mẫu tối thiểu này https://github.com/algal/TemplateImagesBrokenDemo.
tôi biết hai cách giải quyết cho vấn đề này
bọc trong UIButton
Kể từ tintColor làm việc cho UIButtons, một workaround là thay vì UIImageView chỉ để sử dụng một tùy chỉnh kiểu UIButton với userInteractionEnabled = false. Nếu bạn vô hiệu hóa tương tác của nút với UIView.userInteractionEnabled (như trái ngược với với UIControl.enabled), thì bạn sẽ không thay đổi diện mạo của hình ảnh.
tự tái thiết lập các hình ảnh trong mã
workaround khác là tái thiết lập các .image
tài sản trong mã, sau khi UIImageView đã được tải từ ngòi. Điều này làm việc bởi vì việc thiết lập một hình ảnh trong mã có vẻ là những gì gây nên logic khuôn mẫu. Để làm việc này, bạn cần phải thiết lập lại hình ảnh về giá trị hiện tại của nó theo cách không được tối ưu hóa trong trình biên dịch. Một đoạn như thế này trong awakeFromNib
đã làm việc cho tôi:
override func awakeFromNib() {
super.awakeFromNib()
if shouldSetImagesManually {
// the following three-lines should in theory have no effect.
// but in fact, they ensure that the UIImageView
// correctly applies its tintColor to the vector template image
let image = self.templateImageView.image
self.templateImageView.image = nil
self.templateImageView.image = image
}
Câu hỏi này là một bản sao của [Sửa UIImage renderingMode từ storyboard/file xib] (http://stackoverflow.com/questions/19517334/modify-uiimage-renderingmode-from-storyboard-xib-file) – 0xced