라디오 버튼 만들기 (옵션)

7501 단어 Swift
비망록으로참고가 됐으면 좋겠어요.

할 수 있는 것


그중 하나를 고르라고 했을 때다른 옵션을 클릭하면 이전에 선택한 것에 대한 검사가 빗나간 것을 만들고 싶어요.

활용단어참조


isSelected


UIButton에는 Bool 유형의 속성isSelected이 있습니다.(추정된 상태인지 여부를 나타냅니다.)
버튼을 눌렀을 때 반대isSelected해야 하는 단계@IBAction에서radio1Button.isSelected = !radio1Button.isSelected 상태를 바꿀 수 있다.
그리고 이때 다른 버튼 isSelected 을 진짜로 선택한 경우 가짜로 설정하면 됩니다.
if radio2Button.isSelected {
            radio2Button.isSelected = !radio2Button.isSelected
        }
에서 설명한 대로 해당 매개변수의 값을 수정합니다.radio2Button.isSelected = false도 가능합니다.
옵션의 수량만 진행하면 라디오 단추를 사용할 수 있습니다.

setImage


UIButton의 setImage 방법에는 for라는 매개변수가 있습니다.radio1Button.setImage(uncheckedImage, for: .normal)이는 상기isSelected와 밀접한 관계를 가지며 선택하지 않은 경우normal, 선택한 경우selected의 상태를 나타낸다.
따라서 setImage 때 각자의 상태에 대응하는 이미지를 결정함으로써 시각적으로 선택했는지 여부를 나타낼 수 있다.
ex)normal에는 하트가 있습니다.selected는 채워진 마음을 설정할 수 있습니다
radio1Button.setImage(uncheckedImage, for: .normal)
radio2Button.setImage(uncheckedImage, for: .normal
기능 자체

소스 코드


override func viewDidLoad() {

        super.viewDidLoad()
radio1Button.setImage(uncheckedImage, for: .normal)
radio2Button.setImage(uncheckedImage, for: .normal


}
@IBAction func radio1Button(_ sender: Any) {
        radio1Button.isSelected = !radio1Button.isSelected
        reportString = "スパム/宣伝目的"
        if radio2Button.isSelected {
            radio2Button.isSelected = !radio2Button.isSelected
        }
        if radio3Button.isSelected {
            radio3Button.isSelected = !radio3Button.isSelected
        }
        if radio4Button.isSelected {
            radio4Button.isSelected = !radio4Button.isSelected
        }
        if radio5Button.isSelected {
            radio5Button.isSelected = !radio5Button.isSelected
        }
        if radio1Button.isSelected || radio2Button.isSelected || radio3Button.isSelected || radio4Button.isSelected || radio5Button.isSelected {
        submitButton.isEnabled = true
            submitButton.setTitleColor(UIColor.black, for: .normal)
        } else {
            submitButton.isEnabled = false
            submitButton.setTitleColor(UIColor.gray, for: .normal)
        }
    }

좋은 웹페이지 즐겨찾기