Sử dụng Xcode 9.2, không có giải pháp nào ở trên hoạt động cho những gì tôi đang tìm kiếm.
Tôi đang tìm kiếm một giải pháp cho phép tôi thiết lập .normal
và .selected
UIControlState
hình ảnh bên trong bảng phân cảnh cho chế độ kết xuất ban đầu của chúng , nhưng, bên trong tệp Swift, không có chuỗi ký tự nào tồn tại liên quan đến tên hình ảnh.
Về cơ bản, bên trong mã của bạn, bạn sẽ nhận được hình ảnh bạn đặt bên trong bảng phân cảnh của mình cho .normal
trạng thái và hiển thị lại dưới dạng .alwaysOriginal
(Tương tự cho .selected
trạng thái), sau đó, bạn sẽ đặt hình ảnh đó (hiện được hiển thị là bản gốc và sẽ không bị ảnh hưởng bởi sắc thái) cho trạng thái có liên quan ( .normal
và .selected
) của bạn UIButton
.
Đây là:
// Get your .normal image (you set via your storyboard) and render it as original
let unselectedImage = yourButton.image(for: .normal)?.withRenderingMode(.alwaysOriginal)
// Set your normal image but this time rendered as original
yourButton.setImage(unselectedImage, for: .normal)
// Same for selected state
let selectedImage = yourButton.image(for: .selected)?.withRenderingMode(.alwaysOriginal)
yourButton.setImage(selectedImage, for: .selected)
Bằng cách này, bạn có thể đặt trạng thái hình ảnh nút của mình và nếu tên hình ảnh sẽ thay đổi, nó sẽ không ảnh hưởng đến mã của bạn.