Swift UIKit
본 문서에는 UIKit 에 대한 기본기를 공부하며 정리한 내용을 기재하였습니다.
UIKit
UIKit 프레임워크는 iOS 앱의 UI 구성에 필요한 인프라를 제공합니다.
또한, 인터페이스 구현을 위한 window, view 아키텍처, 애플리케이션에 멀티 터치 및 기타 유형의 입력등을 제공하는 이벤트 처리 인프라, 사용자, 시스템 간 상호 작용을 관리하기 위한 기능을 제공합니다.
이외에도 프레임워크가 제공하는 다른 기능으로는 애니메이션, 문서, 그리기 및 인쇄, 현재 장치에 대한 정보, 텍스트 관리 및 디스플레이, 검색 지원, 접근성 지원, 앱 확장 지원 등의 관리가 있습니다.
UIKit이 무엇인지 알아보았으니 주로 이용되는 클래스들에 대하여 알아보도록 하겠습니다.
UILabel
UILabel 은 한 줄 이상의 텍스트 정보를 UI로 표시하기 위해 사용되는 클래스입니다.
즉, 사용자에게 원하는 데이터를 표시하고 싶을때 사용합니다.
단, 사용자는 이를 수정할 수 없고 오직 볼 수만 있습니다.
핵심 속성
var text: String?
Label에 표기할 텍스트를 의미합니다.
label.text = "텍스트 표기" // Label에 표시될 텍스트 값을 "텍스트 표기"로 변경
var font: UIFont!
Label text 프로퍼티의 폰트를 담당합니다.
label.font = UIFont.systemFont(ofSize: 20) // Label의 폰트를 systemFont로 지정하며 크기를 20으로 변경합니다.
label.font = UIFont(name: "CustomFont", size 20) // Label의 폰트를 CustomFont로 지정하며 크기를 20으로 변경합니다.
해당 프로퍼티의 기본값은 systemFont(ofSize: 17)
입니다.
var textColor: UIColor!
Label의 text 프로퍼티의 색상을 담당합니다.
label.textColor = UIColor.blue // text 색상을 "blue"로 변경
var textAlignment: NSTextAlignment
Label text 프로퍼티에 대한 정렬 기준을 담당합니다.
label.textAlignment = NSTextAlignment.left // text 정렬 기준을 왼쪽 정렬로 지정합니다.
label.textAlignment = .center // text 정렬 기준을 가운데 정렬로 지정합니다.
label.textAlignment = .right // text 정렬 기준을 오른쪽 정렬로 지정합니다.
var numberOfLines: Int
Label에 표시할 text의 최대 행의 수를 지정합니다.
기본 값은 1이며, 제한없이 행을 늘릴 수 있습니다.
label.numberOfLines = 90 // 최대 행의 수를 90줄로 제한합니다.
UITextField
UITextField
또한 텍스트를 표시한다는 점에서는 앞서 살펴본 UILabel
과 매우 유사한 클래스입니다.
다만, editable 한 속성을 갖기 때문에 사용자가 직접 내부 text에 대한 변경이 가능해집니다.
핵심 속성
var text: String?
TextFiled 에 디스플레이 될 text를 담당합니다.
textField.text = "제 이름은 여정수입니다" // textField의 text 기본값을 "제 이름은 여정수입니다" 로 변경합니다.
var placeholder: String?
TextFiled 내에 어떠한 text도 없을 떄 임시로 보여줄 text를 담당합니다.
emailTextField.placeholder = "e.g. duwjdtn1@gmail.com" // textField의 임시값을 "e.g. duwjdtn1@gmail.com" 으로 변경합니다.
var font: UIFont?
TextFiled 내 text에 대한 폰트를 담당합니다.
textField.font = UIFont.systemFont(ofSize: 20) // textField 내 text의 폰트를 systemFont로 지정하며 크기를 20으로 변경합니다.
var textColor: UIColor?
TextField 내 text에 대한 색상을 담당합니다.
textField.textColor = UIColor.blue // textField 내 text의 색상을 blue 색상으로 변경합니다.
var keyboardAppearance: UIKeyboardAppearance
TextField 터치시 올라오는 키보드 유형을 담당합니다.
textField.keyboardType = .numberPad // 키보드 유형을 숫자패드로 변경합니다.
textField.keyboardType = .emailAddress // 키보드 유형을 이메일 주소 타입으로 변경합니다.
keyboardType 종류
- Default: 기본
- AsciiCapable: 문자 입력
- URL: URL 입력
- EmailAddress: 이메일 입력
- NumberPad: 숫자 입력
- PhonePad: 전화번호 입력
- etc...
var returnKeyType: UIReturnKeyType
TextField의 반환 키를 담당합니다.
textField.returnKeyType = .Done // 리턴 키를 "Done" 으로 변경합니다.
textField.returnKeyType = .Search // 리턴 키를 "Search" 로 변경합니다.
UIButton
앱 제작시 필수적으로 사용되는 버튼이며 사용자의 터치시 특정 코드를 실행할 수 있도록 제어 기능을 제공합니다.
핵심 속성 및 함수
UIControlState
버튼의 상태를 담당합니다.
- UIControl.State.normal: 기본 상태
- UIControl.State.highlighted: 버튼이 터치되고 있는 상태
- UIControl.State.selected: 버튼이 선택되었을 때
- UIControl.State.disabled: 버튼을 사용하지 않을 때
func setTitle(_ title: String?, for state: UIControl.State)
버튼 상태에 따라서 버튼의 title을 변경합니다.
button.setTitle("normal state", for: .normal) // normal 상태의 버튼 title을 "normal state"로 지정합니다.
button.setTitle("selected state", for: .selected) // selected 사앹의 버튼 title을 "selected state"로 지정합니다.
func setTitleColor(_ color: UIColor?, for state: UIControl.State)
버튼 상태에 따라서 버튼의 title 색상을 변경합니다.
button.setTitleColor(UIColor.red, for: .normal) // normal 상태의 버튼 title 색상을 red 색상으로 지정합니다.
button.setTitleColor(UIColor.blue, for: .selected) // selected 상태의 버튼 title 색상을 blue 색상으로 지정합니다.
var isEnabled: Bool
버튼의 활성 상태를 담당합니다.
if validCheck() {
self.loginButton.isEnabled = true // validCheck 메소드의 반환값이 true인 경우 loginButton를 활성화합니다.
} else {
self.loginButton.isEnabled = false // validCheck 메소드의 반환값이 false인 경우 loginButton를 비활성화합니다.
}
Reference
'iOS' 카테고리의 다른 글
[iOS] [Swift] POP - 프로토콜의 다형성 (0) | 2021.01.01 |
---|---|
[iOS] [Swift] POP - 프로토콜 시작 (0) | 2020.12.26 |
[iOS] [Swift] RxCocoa 맛보기 (0) | 2020.11.26 |
[iOS] [Swift] RxSwift Operators Example (0) | 2020.11.20 |
[iOS] [Swift] RxSwift Subject & Relay & Driver (1) | 2020.11.19 |