반응형
iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다.
라디오버튼 구현의 기본적인 아이디어로는 RadioButton을 관리하는 Controller를 만들고 배열변수에 라디오버튼을 넣습니다.
배열에 넣을 때 normal 상태에서는 기본적인 이미지가 나오게끔, selected 상태일 때는 선택된 이미지가 나오게끔 설정합니다.
기본적으로 선택될 radioButton을 선택을 하고, 버튼이 클릭되면 배열에 담겨있는 버튼 중 하나만 선택되게끔 합니다.
전체코드
class TestViewController: UIViewController {
@IBOutlet weak var radioButton1: UIButton!
@IBOutlet weak var radioButton2: UIButton!
@IBOutlet weak var radioButton3: UIButton!
let radioController = RadioButtonController()
override func viewDidLoad() {
super.viewDidLoad()
radioController.buttonsArray = [radioButton1, radioButton2, radioButton3]
radioController.defaultButton = radioButton1
}
@IBAction func didTapRadioButton(_ sender: UIButton) {
radioController.buttonArrayUpdated(buttonSelected: sender)
}
}
class RadioButtonController: NSObject {
var buttonsArray: [UIButton]! {
didSet {
for button in buttonsArray {
button.setImage(UIImage(systemName: "rectangle"), for: .normal)
button.setImage(UIImage(systemName: "checkmark.rectangle"), for: .selected)
}
}
}
var selectedButton: UIButton?
var defaultButton: UIButton = UIButton() {
didSet {
buttonArrayUpdated(buttonSelected: self.defaultButton)
}
}
func buttonArrayUpdated(buttonSelected: UIButton) {
for button in buttonsArray {
if button == buttonSelected {
selectedButton = button
button.isSelected = true
} else {
button.isSelected = false
}
}
}
}
결과
참조
https://stackoverflow.com/questions/29117759/how-to-create-radio-buttons-and-checkbox-in-swift-ios
반응형
'iOS > 코드조각' 카테고리의 다른 글
[iOS, Swift] 이미지 파일 업로드하기 (alamofire, multipart-data) (0) | 2023.02.27 |
---|---|
[iOS, Swift] UIMenu 기본적인 예제 (0) | 2023.02.26 |
[iOS, Swift] 체크박스 구현하기 (0) | 2023.02.24 |
[iOS, Swift] Keyboard로 인해 가려진 뷰 올리기 (0) | 2023.02.22 |
[iOS, Swift] Safe Area 높이 구하기 (0) | 2023.02.21 |