การใช้ Xcode 9.2 ไม่มีวิธีแก้ปัญหาด้านบนใดที่ทำงานในสิ่งที่ฉันกำลังมองหา
ฉันกำลังมองหาวิธีแก้ปัญหาที่จะให้ฉันตั้งค่า.normal
และ.selected
UIControlState
รูปภาพภายในกระดานเรื่องราวสำหรับโหมดการเรนเดอร์ดั้งเดิมของพวกเขาแต่ในไฟล์ Swift ไม่มีตัวอักษรสตริงที่ควรมีอยู่เกี่ยวกับชื่อภาพ
โดยพื้นฐานแล้วภายในโค้ดของคุณคุณจะได้รับภาพที่คุณตั้งไว้ในสตอรี่บอร์ดของคุณสำหรับ.normal
สถานะและแสดงใหม่เป็น.alwaysOriginal
(เหมือนกันสำหรับ.selected
รัฐ) จากนั้นคุณจะตั้งค่าภาพนั้น (ซึ่งขณะนี้แสดงผลเป็นต้นฉบับแล้ว โทนสี) สำหรับรัฐที่เกี่ยวข้อง ( .normal
และ.selected
) UIButton
ของคุณ
นี่มันคือ:
// 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)
วิธีนี้คุณสามารถตั้งค่าสถานะรูปปุ่มของคุณและหากชื่อรูปภาพจะเปลี่ยนจะไม่มีผลกับรหัสของคุณ