[iOS]UI요소를 알아보자 - UIButton, UISlider, UILabel

corncheese·2021년 7월 28일
0

iOS

목록 보기
3/10

1. 학습 목표

  1. UIButton 생성 방법, 모양 설정 및 사용자 상호작용에 대응하는 방법을 이해
  2. UILabel 생성 방법, 레이블에 입력되는 문구를 설정하는 방법을 이해
  3. UISlider 생성 방법, 구성요소 및 관련 메서드를 이해

2. 핵심 키워드

  • UIButton
  • UILabel
  • UISlider

> UIButton

UIButton 클래스는 상호 작용(터치/탭 등의 이벤트)에 반응해 미리 지정된 코드를 실행하는 컨트롤 요소이다.

  1. 버튼을 선택하여 드래그하여 스토리보드의 원하는 위치에 놓는다.
  2. 버튼을 드래그하여 controller에 아울렛변수 또는 액션으로 추가한다.

button -> attribute inspector

  1. state config는 5가지로 표현될 수 있다.
    - default, highlighted, focused, selected, disabled
    - 버튼의 상태는 '조합'된 상태일 수 있다. (default + selected) 등
    - 버튼 생성 시 기본 상태 값은 default 이다.

  2. 사용자가 버튼과 상호작용을 하면 상태 값이 변하게 된다.

  3. 프로그래밍 방식 혹은 인터페이스 빌더를 이용해 버튼의 각 상태에 대한 속성을 별도로 지정할 수 있다.
    - 별도로 지정하지 않으면 UIButton 클래스에서 제공하는 기본 동작을 사용한다.

button의주요 property
버튼의 프로퍼티 값을 설정하는 방식에는 코드를 이용하는 방법과 스토리보드의 인스펙터를 이용하는 방법이 있다.

  1. enum UIButton: 버튼의 유형
    - 버튼의 유형에 따라 버튼의 기본적인 외형과 동작이 달라진다.
    - 처음 버튼을 생성할때 init(type: )매서드를 용하거나, 인터페이스 빌더의 "Attribute Inspector"버튼 유형을 지정할 수 있다.
    - 한번 생성된 버튼유형은 이후 변경할 수 없다.
    - 가장 많이 사용하는 유형은 Custom과 System이지만 필요에따라 다른 유형을 사용할 수 있다.

  2. var titleLabel: UILabel?: 버튼 타이틀 레이블

  3. var imageView: UIImaveView?: 버튼의 이미지 뷰

  4. var tintColor: UIColor!: 버튼의 타이틀과 이미지의 틴트 컬러

button의 주요 메서드

// 특정 상태의 버튼의 문자열 설정
func setTitle(String?, for: UIControlState)

// 특정 상태의 버튼의 문자열 반환
func title(for: UIControlState) -> String?

// 특정 상태의 버튼 이미지 설정
func setImage(UIImage?, for: UIControlState)

// 특정 상태의 버튼 이미지 반환
func image(for: UIControlState) -> UIImage?

// 특정 상태의 백그라운드 이미지 설정
func setBackgroundImage(UIImage?, for: UIControlState)

// 특정 상태의 백그라운드 이미지 반환
func backgroundImage(for: UIControlState) -> UIImage?

// 특정 상태의 문자열 색상 설정
func setTitleColor(UIColor?, for: UIControlState)

// 특정 상태의 attributed 문자열 설정
func setAttributedTitle(NSAttributedString?, for: UIControlState)

>UILabel

UILabel은 한 줄 또는 여러 줄의 텍스트를 보여주는 뷰로, UIButton 등의 컨트롤의 목적을 설명하기 위해 사용하는 경우가 많다.

Lable의 주요 property
레이블의 프로퍼티에 접근해 나타내려는 문자의 내용, 색상, 폰트, 문자정렬방식, 라인 수 등을 조정할 수 있다.
레이블의 프로퍼티의 값을 설정하는 방식에는 프로그래밍 방식과 스토리보드의 인스펙터를 이용한 방법이 있다.

  1. var text: String? : 레이블이 표시할 문자열

    • 문자열이 모두 동일한 속성(폰트, 색상, 기울임꼴 등)으로 표시된다.
    • text 프로퍼티에 값을 할당하면 attributedText 프로퍼티에도 똑같은 내용의 문자열이 할당된다.
  2. var attributedText: NSAttributedString? : 레이블이 표시할 문자열

    • NSAttributed 클래스를 사용한 속성 문자열 중 특정 부분의 속성을 변경할 수 있다. (일부 글자 색상 변경, 폰트 변경 등)
    • attributedText에 값을 할당하면 text 프로퍼티에도 똑같은 내용의 문자열이 할당된다.
  3. var textColor: UIColor! :문자 색상

  4. var font: UIFont! :문자 폰트

  5. var textAlignment: NSTextAlignment: 문자열의 가로 정렬 방식

    • left, right, center, justified, natural 중 하나를 선택할 수 있다.
  6. var numberOfLines: Int: 문자를 나타내는 최대 라인 수

    • 문자열을 모두 표시하는 데 필요한 만큼 행을 사용하려면 0으로 설정한다, 기본값은 1이다.
    • 설정한 문자열이 최대 라인 수를 초과하면 lineBreakMode 프로퍼티의 값에 따라 적절히 잘라서 표현한다.
    • adjustsFontSizeToFitWidth 프로퍼티를 활용하면 폰트 사이즈를 레이블의 넓이에 따라 자동으로 조절해준다.
  7. var baselineAdjustMent: UIBaselineAdjustment: 문자열이 Autoshrink 되었을 때의 수직 정렬 방식

    • Aline Baseline: 문자가 작아졌을 때 기존 문자열의 기준선에 맞춤
    • ALINE Center: 문자가 작아졌을 때 작아진 문자열의 중앙선에 맞춤
    • None: 문자가 작아졌을 때 기존 문자열의 위쪽 선에 맞춤
  8. var lineBreakMode: NSLineBreakMode: 레이블의 경계선을 벗어나는 문자열에 대응하는 방식

    • character wrap: 여러 줄 레이블에 주로 적용되며, 글자 단위로 줄 바꿈을 결정합니다.
    • Word wrap: 여러 줄 레이블에 주로 적용되며, 단어 단위로 줄 바꿈을 결정합니다.
    • Truncate head: 한 줄 레이블에 주로 적용되며, 앞쪽 텍스트를 자르고 ... 으로 표시한다.
    • Truncate middle: 한 줄 레이블에 주로 적용되며, 중간 텍스트를 자르고 ...으로 표시한다.
    • Truncate tail: 한 줄 레이블에 주로 적용되며, 끝쪽 텍스트를 자르고 ...으로 표시한다. 기본 설정 값이다.

> UISlider

UISlider는 연속된 값 중에서 특정 값을 선택하는데 사용되는 컨트롤이다.

사용자 상호작용에 반응하기
사용자가 슬라이더의 값을 변경하면 슬라이더에 연결된 메서드가 호출되어 원하는 작업이 실행된다. 기본적으로는 사용자가 슬라이더의 Thumb를 이동시키면 연속적으로 이벤트를 호출하지만, isContinous 프로퍼티값을 false로 설정하면 슬러이더의 Thumb에서 손을 떼는 동시에 이벤트룰 호출한다.

슬라이더와 연결하는 메서드 형식
슬라이더 값을 변경했을 때 필요한 정보에 따라 아래 세 가지 중 한 가지를 선택하여 사용한다.

func doSomething()
func doSomething(_sender: UISlider)
func doSomething(_sender: UISlider, forEvent event: UIEvent)

슬라이더 주요 프로퍼티
슬라이더의 프로퍼티 값을 설정한느 방식에는 프로그래밍 방식과 스토리보드의 인스펙터를 이용한 방법이 있다.

  1. var minimumValue: Float, var maximumValue: Float: 슬라라이더 양끝단의 값
  2. var value: Float: 슬라이더의 현재 값
  3. var isContinuous: Bool: 슬라이더의 연속적인 값 변화에 따라 이벤트 역시 연속적으로 호출할 것인지 여부
  4. var thumbTintColor: UIColor? thumb의 틴트 색상
  5. var minimumTrackTintColor: UIColor?, var maximumTrackTintColotL UIColor?: thumb 를 기준으로 앞쪽 트랙과 뒤쪽 트랙의 틴트 색상

슬라이더 주요 메서드

//  슬라이더의 현재 값 설정
func setValue(Float, animated: Bool)

//  특정 상태의 minimumTrackImage 반환
func minimumTrackImage(for: UIControlState) -> UIImage?

// 특정 상태의 minimumTrackImage 설정
func setMinimumTrackImage(UIImage?, for: UIControlState)

// 특정 상태의 maximumTrackImage 반환
func maximumTrackImage(for: UIControlState) -> UIImage?

// 특정 상태의 minimumTrackImage 설정
func setMaximumTrackImage(UIImage?, for: UIControlState)

//  특정 상태의 thumbImage 반환
func thumbImage(for: UIControlState) -> UIImage?

//특정 상태의 thumbImage 설정
func setThumbImage(UIImage?, for: UIControlState)

0개의 댓글