Xcode 9.2를 사용하면 위의 솔루션 중 어느 것도 내가 찾고있는 것에 효과가 없었습니다.
스토리 보드 내에서 원래 렌더링 모드로 이미지를 설정 .normal
하고 설정할 수있는 솔루션을 찾고 있었지만 Swift 파일에는 이미지 이름과 관련하여 문자열 리터럴이 없어야합니다..selected
UIControlState
기본적으로 코드 내에서 스토리 보드에 설정 한 이미지를 .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)
이렇게하면 버튼 이미지 상태를 설정할 수 있으며 이미지 이름이 변경 되더라도 코드에는 영향을 미치지 않습니다.