UISegmentedControl

Panther·2021년 9월 26일
0

https://developer.apple.com/documentation/uikit/uisegmentedcontrol

"A horizontal control that consists of multiple segments, each segment functioning as a discrete button."

여러 세그먼트를 구성하는 수평 컨트롤이며, 각 세그먼트는 이산적 버튼처럼 기능합니다.

Declaration

@MainActor class UISegmentedControl : UIControl

Overview

세그멘티드 컨트롤은 제목(NSString 객체) 혹은 이미지(UIImage 객체)를 표시할 수 있습니다. UISegmentedControl 객체는 특정 넓이 집합을 갖지 않는 한 슈퍼뷰 내에서 비율로 크기를 맞추기 위해 자동으로 세그먼트의 크기를 조절합니다. 세그먼트를 추가하고 삭제할 때, 슬라이드 및 페이드 효과로 애니메이션 처리가 되는 액션을 요청할 수 있습니다.

아래 보이는 것처럼 valueChanged 속성을 사용해서 세그멘티드 컨트롤에 타깃 액션 메소드를 등록할 수 있습니다.

segmentedControl.addTarget(self, action: "action:", forControlEvents: .valueChanged)

세그멘티드 컨트롤 설정 방법은 표시 동작에 영향을 미칠 수 있습니다.

  • 순간적인 스타일을 갖도록 세그멘티드 컨트롤을 설정하는 경우 세그먼트는 사용자가 터치할 때 선택된 것(파란색 백그라운드)처럼 나타나지 않습니다. 디스클로저 버튼은 항상 순간적이며, 실제 선택에 영향을 미치지 않습니다.
  • iOS 3.0 이전 버전에서 세그멘티드 컨트롤이 두 가지 세그먼트만을 갖는 경우 스위치처럼 작동하며, 현재 선택된 세그먼트 선택 시 다른 세그먼트가 선택됩니다. iOS 3.0 및 이후 버전에서 현재 선택된 세그먼트를 탭하는 것은 다른 세그먼트를 선택하지 않습니다.

Customizing Appearance

iOS 5 및 이후 버전에서 Customizing Appearance에 나타나는 메소드를 사용해 세그멘티드 컨트롤의 모양을 커스터마이징할 수 있습니다. 모양 프록시(예를 들어 [UISegmentedControl appearance])를 사용해서 모든 세그멘티드 컨트롤 혹은 하나의 컨트롤에 대한 모양을 커스터마이징할 수 있습니다.

Customizing Appearance는 이 글로 연결됩니다.

Customizing Appearance
https://developer.apple.com/documentation/uikit/uisegmentedcontrol

일반적으로 모양 커스터마이징을 하는 경우 커스텀 값의 집합을 갖지 않는 다른 상태에 의해 사용되기 위한 속성의 상태 값을 구체화해야 합니다. 유사하게 값이 바 metrics(landscape 오리엔테이션에 있는 아이폰에서 바는 표준으로부터 다른 높이를 갖습니다)에 따라 달라지는 경우 UIBarMetrics.default에 대한 값 구체화를 확실히 해야 합니다.

세그멘티드 컨트롤의 특정 경우 landscapePhone 모양 속성은 아이폰의 landscape 오리엔테이션에서 사용되는 더 작은 네비게이션 및 툴바의 세그멘티드 컨트롤에만 적용됩니다.

완전한 커스터마이징을 제공하려면 다른 상태 조합에 대한 구분 이미지를 제공할 필요가 있으며, setDividerImage(_:forLeftSegmentState:rightSegmentState:barMetrics:)를 사용합니다.

// Image between two unselected segments.
mySegmentedControl.setDividerImage(myImage, forLeftSegmentState: UIControlState.Normal,
                                   rightSegmentState: UIControlState.Normal, barMetrics: UIBarMetrics.Default)
 
// Image between segment selected on the left and unselected on the right.
mySegmentedControl.setDividerImage(myImage, forLeftSegmentState: UIControlState.Selected,
                                   rightSegmentState: UIControlState.Normal, barMetrics: UIBarMetrics.Default)
 
// Image between segment selected on the right and unselected on the left.
mySegmentedControl.setDividerImage(myImage, forLeftSegmentState: UIControlState.Normal,
                                   rightSegmentState: UIControlState.Selected, barMetrics: UIBarMetrics.Default)

Topics


Managing Segments

Segment Selection

세그멘트가 선택되지 않았음을 나타내고 있는 상수입니다.

https://developer.apple.com/documentation/uikit/uisegmentedcontrol/1618559-segment_selection
https://velog.io/@panther222128/Segment-Selection


See Also


Controls

UIControl

사용자 상호작용에 대한 응답으로 특정 액션 혹은 의도를 전달하는 시각적 요소인 컨트롤에 대한 베이스 클래스입니다.

https://developer.apple.com/documentation/uikit/uicontrol
https://velog.io/@panther222128/UIControl

UIButton

사용자 상호작용에 응답해 커스텀 코드를 실행하는 컨트롤입니다.

https://developer.apple.com/documentation/uikit/uibutton
https://velog.io/@panther222128/UIButton

UIColorWell

컬러 피커를 표시하는 컨트롤입니다.

https://developer.apple.com/documentation/uikit/uicolorwell
https://velog.io/@panther222128/UIColorWell

UIDatePicker

날짜 및 시간 값 입력을 위한 컨트롤입니다.

https://developer.apple.com/documentation/uikit/uidatepicker
https://velog.io/@panther222128/UIDatePicker

UIPageControl

각각이 앱의 문서 혹은 다른 데이터 모델 엔티티에 상응하는 점의 연속을 수평으로 표시하는 컨트롤입니다.

https://developer.apple.com/documentation/uikit/uipagecontrol
https://velog.io/@panther222128/UIPageControl

UISlider

값의 연속적 범위로부터 하나의 값을 선택하기 위한 컨트롤입니다.

https://developer.apple.com/documentation/uikit/uislider
https://velog.io/@panther222128/UISlider

UIStepper

값의 증가 혹은 감소를 위한 컨트롤입니다.

https://developer.apple.com/documentation/uikit/uistepper
https://velog.io/@panther222128/UIStepper

UISwitch

온/오프처럼 이진 선택을 제공하는 컨트롤입니다.

https://developer.apple.com/documentation/uikit/uiswitch
https://velog.io/@panther222128/UISwitch


0개의 댓글