본문 바로가기
iOS/iOS

[iOS] UIButton

by 원만사 2021. 11. 28.
반응형

UIButton

 사용자 상호 작용에 대한 응답으로 사용자 정의 코드를 실행하는 컨트롤

1
2
@MainActor class UIButton : UIControl
 
cs

 

 버튼을 누르거나 포커스가 있는 버튼을 선택하면 버튼에 연결된 모든 작업을 수행한다. 텍스트 레이블, 이미지 등을 사용하여 버튼 사용 목적을 사용자에게 나타낼 수 있다.

 

버튼을 눌렀을 때 반응

 버튼은 Target-Action 디자인 패턴을 사용하여 사용자가 버튼을 누를 때 앱에 알린다. 터치 이벤트를 직접 처리하지 않고 버튼에 작업 방법을 할당하고 메서드에 대한 호출을 트리거하는 이벤트를 지정한다. 런타임에서, 버튼은 들어오는 모든 터치 이벤트를 처리하고 메서드를 호출한다.

 addTarget(_:action:for:) 메서드를 사용하거나 인터페이스 빌더에서 연결을 만들어 버튼과 메서드를 연결할 수 있다. 메서드는 아래의 세 가지 형식 중 하나를 사용한다. 버튼을 눌렀을 때 응답하는 데 필요한 정보를 제공하는 방식을 선택해서 사용하면 된다.

 

버튼의 형태 설정

 버튼의 type은 버튼의 기본적인 형태와 동작을 정의한다. init(type:) 메서드나 스토리보드 파일에서 버튼의 타입을 설정할 수 있다. 버튼을 한 번 생성한 후에는 버튼의 type을 변경할 수 없다. 가장 많이 사용되는 버튼의 타입은 Custom과 System 타입이지만 적절한 경우에 다른 버튼 type을 사용할 수 있다.

 다음은 버튼 type 목록이다.

 

  • custom : 버튼 스타일 없음
  • system : 탐색 모음 및 도구 모음에 표시되는 시스템 스타일 버튼
  • datailDisclosure : 세부 정보 버튼
  • infoLight : 밝은 배경의 정보 단추 
  • infoDark : 어두운 배경의 정보 단추
  • contactAdd : 연락처 추가 버튼
  • plain : 배경이 흐릿하지 않은 표준 시스템 버튼
  • close : 패널 및 뷰를 dismiss하기 위한 닫기 버튼

 

버튼 상태

 버튼에는 모양을 정의하는 다섯 가지 상태(default, highlighted, focused, selected, disabled)가 존재한다. 인터페이스에 처음 버튼을 생성했을 때는, 단추가 활성화 되어 있고 아직 상호작용 하지 않은 형태인 default 상태로 설정되어 있다. 사용자가 버튼을 사용해 상호작용하고 나면 버튼은 다른 상태로 변하게 된다. 예를 들어, 사용자가 제목이 있는 버튼을 누르면 버튼이 highlighted 상태로 바뀌게 된다.

 

 프로그래밍 방식 또는 인터페이스 빌더에서 버튼을 구성할 때, 프로그래머는 각 상태에 대한 속성을 별도로 지정한다. 특정 상태에 대한 특성을 지정하지 않으면 UIButton 클래스는 합리적인 기본 동작을 제공한다.

 

구성 요소

 버튼의 구성 요소는 사용자가 지정한 제목 문자열 또는 이미지로 구성된다. 지정한 내용은 버튼 자체에서 관리하는 UILabel 및 UIImageView 객체를 구성하는 데 사용된다. titleLabel 또는 imageView 특성을 사용하여 이러한 객체에 접근하고 해당 값을 직접 수정할 수 있다. 또한 이 클래스의 메소드는 문자열 또는 이미지의 모양을 구성할 수 있는 편리한 바로 가기를 제공한다.

 

 일반적으로, 제목이나 이미지를 사용하여 버튼을 구성하고 그에 따라 버튼 크기를 조정한다. 버튼에는 사용자가 지정한 내용 뒤에 위치한 배경 이미지가 있을 수도 있다. 아래 그림과 같이 버튼의 이미지와 제목을 모두 지정할 수 있다. 표시된 프로퍼티를 사용하여 버튼의 현재 내용에 접근할 수 있다.

 

버튼의 내용을 설정할 때 각 상태에 대한 title, 이미지 및 모양 속성을 별도로 지정해야 한다. 특정 상태에 대한 내용을 사용자 정의하지 않으면 버튼은 기본값과 관련된 값을 사용하고 적절한 사용자 정의를 추가한다.

 

색상

 tintColor 속성을 사용하여 사용자 정의 버튼 색상을 지정할 수 있다. 이 속성은 버튼 이미지와 텍스트의 색상을 설정한다. 색상을 명시적으로 설정하지 않으면 Super View의 tine color를 사용한다.

 

 

참고

- https://developer.apple.com/documentation/uikit/uibutton 

- https://developer.apple.com/documentation/uikit/uibutton/buttontype

 

 

반응형

'iOS > iOS' 카테고리의 다른 글

[iOS] UILabel  (0) 2021.11.28
[iOS] UISlider  (0) 2021.11.28
[iOS] @IBOutlet과 @IBAction  (0) 2021.11.22
[iOS 기초] UIView  (0) 2021.11.17
[iOS 기초] UIKit 프레임워크  (0) 2021.11.17

댓글