💡 알림
사용자가 권한을 허용해야 알림 가능
앱 재사용률(Retention)에 기여
앱이 종료 된 경우에도 사용자에게 표시 가능
✅ willPresent
알림을 특정 화면이나 특정 조건에서만 포그라운드 알림을 받도록 할 수 있고, 또 특정 화면에서는 알림 안받기도 설정 가능하다.
특정 푸시를 클릭하면 특정 화면으로 이동
알림 개수 제한 : 하루에 하나의 앱에서 64개로 제한이 있다. identifier기반
이전에 등록된 알림을 제거하는 방식으로 더 보여주기도 한다.
카톡: 포그라운드 앱을 켜는 순간, 등록되어 있던 모든 알림들을 제거
✅ 알림 스택 제거
알림 유효기간이 존재함(한달)
identifier 기반으로 특정 알림을 지울 수 있다.
캘린더 기반 알림 설정
Date
Components
→ 10시 5분
여러 단위의 시간에 따라 세세한 설정이 가능하다
알림
권한이 가장 중요하다
로컬 vs 원격
캘린더, timeInterver(간격)
프로토콜 활용(foreground, 화면 전환, 알림 제거 설정)
@IBDesignable
@IBInspectable
attribute instpector 영역에 입력한 값이 프로토콜의 newValue 값으로 들어감
런타임 시에 확인이 가능했던 부분을 컴파일 시에 확인할 수 있다는 장점이 있다.
⇒ xcode내에서 적용을 못하는 버그 존재.. 작동은 한다.
💡 컨텐츠 크기 조절하기
너비가 설정이 되어있지 않기 때문에 오류 발생
지금까지는 하나의 레이블 너비를 고정하여 오류를 해결하였다.
오류 해결됨
뷰가 가지고 있는 본질적인 크기
✅ Intrinsic Content Size
→ switch, label, button
이미지뷰 uiview는 너비 높이 x축 y축 모두 설정해 주어야 한다.
segmentControl, switch는 조절이 제한되어 있다.
내부적으로 가지고 있는 본질적인 크기가 있다.
아래 옆 여백만 잡아줘도 오류가 나지 않지만 이미지 뷰와 같은 본질 크기가 없으면 레이아웃이 깨지게 된다.
✅Content Hugging Priority
본질적인 크기 만큼 내가 작아질거야
본질적인 크기만큼 레이블의 크기가 딱 맞아 떨어지게 설정한다.
본질적인 크기로 맞출 우선순위가 높다!
내용물의 크기가 커지면 오류가 발생한다.
작아지겠다고 해놓고 내용물이 많아진다면 다시 레이아웃에 오류가 난다.
✅ Content Compression Resistance Priority
본질적인 크기만큼 내가 커지겠어
hugging 순위가 낮은 레이블이 남은 공간을 채우다가 최소한의 본질적인 크기를 확보하여 본질 크기를 지키기 위해 compression resistance priority를 지정한다.
숫자 자체는 의미 없음. 상대적으로 조절하기 위한 숫자일 뿐
팝업창 레이아웃 조절
디바이스 크기 기준 비율
너비를 equal width로 디바이스 기준 비율로 잡고 aspect ratio 설정
💡 코드베이스로 뷰 얹기
1. 뷰 객체 프로퍼티 선언 (클래스 인스턴스 생성)
2. 명시적으로 루트 뷰에 추가(translatesAutoresizingMaskIntoConstraints)
3. 크기와 위치 정의
프레임 기반
양쪽 여백 50 주기
프레임 너비 - 100
emailTextField.frame = CGRect(x: 50, y: 80, width: UIScreen.main.bounds.width - 100, height: 50)
Frame 한계 있음
✅ autoResizingMask, AutoLayout ⇒ 스토리 보드 대응
default autoresizing 설정때문에 왼 위 부터 뷰 객체들이 채워진다.
조절 가능, 잘 안씀
✅ NSLayoutConstraints => 코드베이스 대응
NSLayoutConstraint(item: passwordTextField, attribute: .leading, relatedBy: .equal,
toItem: view.safeAreaLayoutGuide, attribute: .leading, multiplier: 1, constant: 50).isActive = true
passwordTextField를 leading에 맞춰 똑같이 잡을건데
view.safeAreaLayoutGuide에 맞춰서 leading을 잡아
활성화 시키기..
textfield의 trailing을 설정할건데 뷰의 trailing과 같게 설정할거다
textfield의 높이는 기준은 없고 고정 높이 설정할거다
적용 안됨!
스토리보드 상에서 autolayout을 설정하면 autoResizing이 사라진다
코드베이스로 작성하면 autoResizing이 constraints로 적용
기본으로 켜져있음
passwordTextField.translatesAutoresizingMaskIntoConstraints = false //autoResizing 설정 해제
끄지 않으면 충돌나기 때문에 수동으로 설정해야 한다!
trailing은 안쪽으로 들어와야 하기 때문에 음수 값으로 설정
'iOS > 🌱 SeSAC' 카테고리의 다른 글
23.08.24 목 (0) | 2023.08.31 |
---|---|
23.08.23 수 (0) | 2023.08.31 |
23.08.22 화 (0) | 2023.08.31 |
23.08.18 금 (0) | 2023.08.27 |
23.08.14 월 (0) | 2023.08.27 |