<생명주기>
아이폰- 앱 사용할 때, 사용하지 않을 때로 분류됨
not running (앱이 시작되기 전 상태)
active (앱이 화면에서 실행중인 상태) - 아이폰에서 앱 하나만 띄우니까 active인 상태인 앱은 하나.
inactive (앱이 화면에서 실행중이나 어떤 신호도 받지 않는 상태)
background(앱이 화면에 보이지 않지만 코드를 실행하고 있는 상태) (앱을 여러개 실행했을 때 뒤에 깔리는거) - active 상태가 아님. 제약이 있다.
suspend(앱이 곧 종료될 상태)
여기에서 active, inactive 를 묶어서 foreground라고 함
---->여기까지 iOS12 (Appdelegate)
iOS13으로 가면서 달라지기 시작 (iPad 등장) (Scenedelegate 가 등장)
아이패드에서는 화면 분할이 되기 때문에 active한 앱이 2개 이상이되는 상황이 생김. 3개도 띄울 수 있고, 같은 앱을 2개 띄울 수 있음
active 상태인 앱은 하나 라는 규칙이 깨짐
그래서 scene 개념이 등장
앱 델리게이트 실행되고 씬 델리게이트가 실행됨
앱 델리게이트 - 실행 , 종료만 담당
씬 델리게이트 - 하나만 띄우더라도 씬 델리게이트에서 담당
여러개의 앱을 띄울 때 foreground, background로 보내는거
iPad 에서 씬을 띄운다고 표현
----------------------------------
코드를 외우지 않아도 되는 방법
오른쪽 마우스 클릭 : create code snippet 으로 자주 쓰는 코드 등록
불러올 때 +버튼으로 누르고 더블클릭해서 가져올 수 있음
----------------------------------
다크모드 실행방법 (시뮬레이터에서)
설정->개발자->Dark appearance
내가 직접 커스텀한 컬러는 다크모드에서 반전 불가
다크모드 대응
Assets에서 any, light, dark 선택하면 -> any : iOS 13 이하버전 / light, dark : iOS13 이상 버전
다크모드 대응하고 싶지 않으면 : (UI적 요소가 그닥 필요하지 않은 앱의 경우)
info.plist에서 Appearance -> Light (L대문자 주의)로 적기
----------------------------------
General에서 portrait (세로모드) 설정한다고 해도 시뮬레이터에 띄우면 적용이 안되는 경우
Build settings 에 들어가서 Info.plist values -> supported interface orientation(iphone) -> Portrait 만 남기기 (나머지 landscape left, right 지우기)
->정리: General에서 적용하더라도 적용이 안되면 Build Settings 도 바꿔본다
참고))
애플 워치 등 다른 거 추가해서 기능 추가~~ Targets
프로젝트 하나에 target 이 여러개 있을 수 있다
ex) 광고 제거, 위젯, 등등
----------------------------------
낮은 버전 (iOS 13 이하) 지원하고 싶으면 AppDelegate 에 var window: UIWindow? 를 쓴다
버전에 상관 없이 UIWindow를 다 쓰는데,
iOS 13 이하에서는 AppDelegate에 var window: UIWindow? 를 써야 대응됨.
iOS13 이후로 scenedelegate로 var window: UIWindow? 이관됨 (SceneDelegate에 var window: UIWindow?가 기본적으로 쓰여져 있음)
----------------------------------
런치스크린 Launchscreen 지연시키기 (sleep)
Appdelegate에서 설정함
--------------------------------
UI요소 복사 :cmd + d
UI요소에 대고 option누르면 가로 세로 높이 주변 수치 뜬다
클린 빌드
Product -> Clean Build Folder
키보드 안 올라오는 경우
I/O -> keyboard -> connect hardware keyboard (cmd + k)
--------------------------------
.highlighted => 눌렀을 때 "빨리보내"로 바뀜
text field 관련 키보드 내리기
키보드를 "언제" 내릴 것인가?
1. 밑바탕을 클릭했을 때
Tap Gesture Recognizer 를 밑바탕에 추가
키보드 올라오는건 textfield를 클릭하는 순간.
'iOS > iOS SeSAC 2기 TIL' 카테고리의 다른 글
iOS UISwitch에 대한 UI 속성 (0) | 2022.07.06 |
---|---|
iOS UITextField 에 대한 UI 속성 + 추가 액션 (0) | 2022.07.06 |
Swift file vs. CocoaTouch Class file (0) | 2022.07.06 |
7.5 수업 복습 - UI 관련 (0) | 2022.07.05 |
iOS UIButton 관련 (0) | 2022.07.04 |