본문 바로가기

iOS61

[iOS] Content Hugging과 Content Compression Resistance iOS의 오토 레이아웃 설정중에, Content Hugging Priority와 Content Compression Resistance Prioirty가 존재한다. 이 둘을 언제 어떻게 사용하는지 알아보자. 먼저 둘을 간단히 정리하자면 다음과 같다. Content Hugging Priority : 우선순위가 높으면 내 크기 유지. 우선순위가 낮으면 크기가 늘어남. Content Compression Resistance Priority : 우선순위가 높으면 내 크기 유지. 우선순위가 낮으면 내 크기가 작아짐. 간단한 예제를 통해 둘을 확인해보자. 1. Content Hugging Priority 위의 그림과 같이 두 개의 라벨이 존재하는데 두 라벨 모두 top / leading / trailing이 60/.. 2022. 1. 4.
[iOS] Date Picker - 날짜 선택 UIDatePicker를 사용하여 날짜를 선택하는 방법을 알아보자. 먼저 아래 사진과 같이 빈 화면에 하나의 텍스트 필드를 만들었다. 이제 저 텍스트 필드를 선택했을 때 날짜를 선택할 수 있는 창이 뜨도록 구현해보자. 먼저 뷰 컨트롤러에 텍스트 필드와 연결된 outlet 변수를 만들었고 UIDatePicker 객체의 인스턴스에 해당하는 프로퍼티와 datePicker에서 선택한 날짜를 담아줄 Date형 프로퍼티를 만들었다. import UIKit class ViewController: UIViewController { @IBOutlet weak var dateTextField: UITextField! private let datePicker = UIDatePicker() private var date: D.. 2021. 12. 14.
[iOS] UITabBarController - 다중 선택 인터페이스 다중 선택 인터페이스를 관리하는 컨테이너 뷰 컨트롤러로, 선택으로 화면에 표시할 하위 뷰 컨트롤러가 결정된다. @MainActor class UITabBarController : UIViewController tab bar 인터페이스는 화면의 하단에 탭을 표시하여 서로 다른 모드를 선택하고 선택된 모드에 대한 뷰를 화면에 표시한다. 각 탭은 사용자 지정 뷰 컨트롤러와 연결된다. 사용자가 특정 탭을 선택하면 tabBarController는 해당 뷰 컨트롤러의 root view를 화면에 표시하여 이전 뷰를 대체한다(사용자 탭은 이전에 선택한 탭에 관계없이 항상 탭의 root view를 표시한다. 이는 탭을 이미 선택한 경우에도 마찬가지다.). 아래의 사진은 UITabBarController를 사용한 예시다... 2021. 12. 12.
[iOS] ViewController의 생명주기(Life Cycle) View Contoller의 생명주기 앱은 보통 하나 이상의 화면들로 구성되어 있다. 즉 앱에는 하나 이상의 'View Controller'가 존재하는 것이다. 각각의 뷰 컨트롤러는 생명주기를 갖고 있다. 여기서 생명주기라는 것은 각각의 뷰 컨트롤러가 화면에 나타나거나 사라지는 것을 의미한다. 뷰 컨트롤러의 생명주기는 다음과 같다. Appearing : 뷰가 화면에 나타나는 중 Appeared : 뷰가 화면에 나타나는게 완료된 상태 Disappearing : 뷰가 화면에서 사라지는 중 Disappeared : 뷰가 화면에서 사라진 상태 각각의 상태로 변경될 때 위의 그림에 표시된 메서드가 iOS 시스템에 의해 자동으로 호출된다. 각각의 의미에 대해서 살펴보자. viewDidLoad() 위의 그림에서는 보.. 2021. 12. 12.
[iOS] UserDefaults를 사용한 데이터 저장 앱 실행 전반에 걸쳐 키-값 쌍을 지속적으로 저장할 수 있는 사용자의 기본 데이터베이스에 대한 인터페이스 class UserDefaults : NSObject UserDefaults 클래스는 기본 시스템과 상호 작용하기 위한 프로그래밍 방식의 인터페이스를 제공한다. 런타임 시 객체를 사용하여 app이 사용자의 기본 데이터베이스에서 사용하는 기본값을 읽기 때문에 필요할 때마다 데이터베이스를 열 필요가 없어진다. 사용자의 정보라던가 게시물에 대한 정보처럼 대용량의 데이터를 저장할 때 사용하지 않고 자동 로그인 여부, 아이디 저장, 환경설정에서 설정하는 설정 데이터 값(사용자가 선호하는 측정 단위나 미디어 재생 속도 등) 같은 단일 데이터 등을 UserDefaults로 담아서 보관한다. 예제 UIAlertCo.. 2021. 12. 7.
[iOS] UIAlertController를 이용한 메시지 창 사용자에게 알림 메시지를 표시하는 객체 @MainActor class UIAlertController : UIViewController UIAlertController는 앱 실행 도중에 사용자에게 메시지를 전달하고 의사를 입력받기 위한 목적으로 제공되는 객체이다. 텍스트로 이루어진 짤막한 메시지만을 전달하기 위한 용도로 사용되기도 하지만, 예/아니오 또는 그 이상의 여러 항목 중에서 하나를 선택할 수 있는 버튼을 제공하여 사용자와 상호작용하는 용도로 사용되는 경우가 많다. UIAlertController에서는 사용자가 원하는 대로 버튼을 추가할 수 있다. 버튼은 UIAlertAction 객체에 의해 구현되는데, 필요한 버튼 수만큼 UIAlertAction 객체를 구현하고, 이 버튼이 클릭 되었을 때 실행.. 2021. 12. 7.