Danny의 iOS 컨닝페이퍼
article thumbnail

속성 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
    }
}

 

 

 

반응형
profile

Danny의 iOS 컨닝페이퍼

@Danny's iOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!