반응형
속성 isSelected을 이용
속성 isSelected은 Bool 타입으로 값을 설정 안 한다면, false 값을 갖고 있습니다.
isSelected에서 toggle 메서드를 이용해 줄 겁니다.
만약, 버튼을 클릭 될 때마다 toggle을 실행하게 만들어주면,
isSelected의 값이 false <--> true로 계속 전환되겠죠?
여기서, 간단한 로직을 추가하여 버튼이 클릭될 때마다 다른 동작을 갖도록 만들 수 있습니다.
@objc func buttonHandelr(_ sender: UIButton) {
// 말 그대로 Bool 값을 toggle 합니다.
sender.isSelected.toggle()
// 버튼이 클릭될 때마다, 버튼 이미지를 변환
if sender.isSelected {
sender.setImage(firstImage, for: .normal)
} else {
sender.setImage(secondImage, for: .normal)
}
}
enum을 이용
이건 팁은 아니지만, 이런 방법으로도 가능하겠죠
enum ButtonState {
case initial
case transformed
}
var buttonState: ButtonState = .initial
@objc func buttonHandelr(_ sender: UIButton) {
switch buttonState {
case .initial:
sender.setImage(initialImage, for: .normal)
buttonState = .transformed
case .transformed:
sender.setImage(transformedImage, for: .normal)
buttonState = .initial
}
}
반응형
'TIP' 카테고리의 다른 글
[Swift/ TIP] subscript 활용 (깔끔하게 모델에 접근) (2) | 2023.11.21 |
---|---|
[Swift/ TIP] 앱 이름 변경하기 (+Localization) (0) | 2023.07.21 |
[Swift/ TIP] 앱 추적 투명성 권한 요청 (App Tracking Transparency) (0) | 2023.07.21 |
[Swift/ TIP] Alert를 사용해, 앱 설정창으로 이동하기 (0) | 2023.07.21 |
[Swift/ Tip] 스크린의 크기를 구해보자 (UIScreen.main is deprecated) (0) | 2023.07.18 |