UISegmentedControl 은 여러 세그먼트(버튼)로 구성된 컨트롤이다. 사용자는 하나의 세그먼트를 선택할 수 있으며, 각 세그먼트는 다른 옵션을 나타낸다. 이 컨트롤은 iOS 앱에서 일반적으로 옵션 선택이나 필터링 기능을 제공하는데 사용된다.
UISegmentedControl 의 주요 기능
1. 세그먼트 추가 및 삭제 : 세그먼트를 동적으로 추가하거나 삭제할 수 있다.
2. 선택 상태 관리 : 선택된 세그먼트를 변경하고, 해당 이벤트를 처리할 수 있다.
3. 외관 커스터마이징 : 텍스트, 이미지, 생상 등을 설정하여 세그먼트의 외관을 변경할 수 있다.
기초적인 사용법
아래의 코드는 간단한 UISegmentedControl 을 설정하고, 사용하는 방법을 알려주는 예제이다.
import UIKit
class ViewController: UIViewController {
let segmentedControl: UISegmentedControl = {
let items = ["First", "Second", "Third"]
let segmentedControl = UISegmentedControl(items: items)
segmentedControl.selectedSegmentIndex = 0
segmentedControl.translatesAutoresizingMaskIntoConstraints = false
segmentedControl.addTarget(self, action: #selector(segmentedControlValueChanged(_:)), for: .valueChanged)
return segmentedControl
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(segmentedControl)
NSLayoutConstraint.activate([
segmentedControl.centerXAnchor.constraint(equalTo: view.centerXAnchor),
segmentedControl.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 20),
segmentedControl.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
segmentedControl.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20)
])
}
@objc func segmentedControlValueChanged(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
print("First segment selected")
case 1:
print("Second segment selected")
case 2:
print("Third segment selected")
default:
break
}
}
}
주요 메서드와 속성
init(items: [Any]?) - 세그먼트 타이틀이나 이미지를 사용해 SegmentedControl 을 초기화한다.
selectedSegmentIndex - 현재 선택된 세그먼트의 index이다.
setTitle(_: forSegmentAt: ) - 특정 세그먼트의 타이틀을 설정한다.
setImage(_: forSegmentAt: ) - 특정 세그먼트의 이미지를 설정한다.
insertSegment(withTitle: at: animated: ) - 특정 위치에 새로운 세그먼트를 삽입한다.
removeSegment(at: animated: ) - 특정 위치의 세그먼트를 제거한다.
numberOfSegments - 세그먼트의 총 갯수를 반환한다.
addTarget(_: action: for: ) - 특정 이벤트에 대한 타겟과 액션을 추가한다.
'swift' 카테고리의 다른 글
| 메모리 관리 이해 (0) | 2024.07.09 |
|---|---|
| UIViewController 생명주기 (3) | 2024.07.09 |
| UIScrollView (0) | 2024.06.21 |
| UIStackView (0) | 2024.06.21 |
| UIView (0) | 2024.06.21 |