23.08.21 월

2023. 8. 27. 12:07·Study/🌱 SeSAC

 

💡 알림

사용자가 권한을 허용해야 알림 가능

앱 재사용률(Retention)에 기여

앱이 종료 된 경우에도 사용자에게 표시 가능

 

✅ willPresent

Untitled.png

알림을 특정 화면이나 특정 조건에서만 포그라운드 알림을 받도록 할 수 있고, 또 특정 화면에서는 알림 안받기도 설정 가능하다.

특정 푸시를 클릭하면 특정 화면으로 이동

 

알림 개수 제한 : 하루에 하나의 앱에서 64개로 제한이 있다. identifier기반

이전에 등록된 알림을 제거하는 방식으로 더 보여주기도 한다.

카톡: 포그라운드 앱을 켜는 순간, 등록되어 있던 모든 알림들을 제거

 

✅ 알림 스택 제거

알림 유효기간이 존재함(한달)

Untitled.pngUntitled.png

identifier 기반으로 특정 알림을 지울 수 있다.

 

 

캘린더 기반 알림 설정

Untitled.png

 

Date

Components

Untitled.png

→ 10시 5분

여러 단위의 시간에 따라 세세한 설정이 가능하다

 

알림

권한이 가장 중요하다

로컬 vs 원격

캘린더, timeInterver(간격)

프로토콜 활용(foreground, 화면 전환, 알림 제거 설정)


@IBDesignable

@IBInspectable

Untitled.pngUntitled.png

attribute instpector 영역에 입력한 값이 프로토콜의 newValue 값으로 들어감

 

Untitled.png

런타임 시에 확인이 가능했던 부분을 컴파일 시에 확인할 수 있다는 장점이 있다.

 

Untitled.png

⇒ xcode내에서 적용을 못하는 버그 존재.. 작동은 한다.

 

 

Untitled.pngUntitled.pngUntitled.png


💡 컨텐츠 크기 조절하기

Untitled.pngUntitled.png

너비가 설정이 되어있지 않기 때문에 오류 발생

지금까지는 하나의 레이블 너비를 고정하여 오류를 해결하였다.

 

 

Untitled.pngUntitled.png

오류 해결됨

뷰가 가지고 있는 본질적인 크기

 

✅ Intrinsic Content Size

→ switch, label, button

이미지뷰 uiview는 너비 높이 x축 y축 모두 설정해 주어야 한다.

segmentControl, switch는 조절이 제한되어 있다.

Untitled.png

내부적으로 가지고 있는 본질적인 크기가 있다.

아래 옆 여백만 잡아줘도 오류가 나지 않지만 이미지 뷰와 같은 본질 크기가 없으면 레이아웃이 깨지게 된다.

 

Untitled.pngUntitled.png

✅Content Hugging Priority

Untitled.pngUntitled.png

본질적인 크기 만큼 내가 작아질거야

 

Untitled.png

본질적인 크기만큼 레이블의 크기가 딱 맞아 떨어지게 설정한다.

본질적인 크기로 맞출 우선순위가 높다!

 

 

내용물의 크기가 커지면 오류가 발생한다.

Untitled.png

작아지겠다고 해놓고 내용물이 많아진다면 다시 레이아웃에 오류가 난다.

 

 

✅ Content Compression Resistance Priority

본질적인 크기만큼 내가 커지겠어

Untitled.pngUntitled.png

hugging 순위가 낮은 레이블이 남은 공간을 채우다가 최소한의 본질적인 크기를 확보하여 본질 크기를 지키기 위해 compression resistance priority를 지정한다.

숫자 자체는 의미 없음. 상대적으로 조절하기 위한 숫자일 뿐


팝업창 레이아웃 조절

디바이스 크기 기준 비율

너비를 equal width로 디바이스 기준 비율로 잡고 aspect ratio 설정


💡 코드베이스로 뷰 얹기

1. 뷰 객체 프로퍼티 선언 (클래스 인스턴스 생성)

Untitled.png

 

2. 명시적으로 루트 뷰에 추가(translatesAutoresizingMaskIntoConstraints)

Untitled.png

 

3. 크기와 위치 정의

프레임 기반

양쪽 여백 50 주기

프레임 너비 - 100

emailTextField.frame = CGRect(x: 50, y: 80, width: UIScreen.main.bounds.width - 100, height: 50) 

Frame 한계 있음

 

✅ autoResizingMask, AutoLayout ⇒ 스토리 보드 대응

Untitled.png

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을 잡아

활성화 시키기..

 

Untitled.png

textfield의 trailing을 설정할건데 뷰의 trailing과 같게 설정할거다

textfield의 높이는 기준은 없고 고정 높이 설정할거다

 

적용 안됨!

스토리보드 상에서 autolayout을 설정하면 autoResizing이 사라진다

코드베이스로 작성하면 autoResizing이 constraints로 적용

기본으로 켜져있음

passwordTextField.translatesAutoresizingMaskIntoConstraints = false  //autoResizing 설정 해제 

 

끄지 않으면 충돌나기 때문에 수동으로 설정해야 한다!

Untitled.png

trailing은 안쪽으로 들어와야 하기 때문에 음수 값으로 설정

Untitled.png

'Study > 🌱 SeSAC' 카테고리의 다른 글

23.08.24 목  (0) 2023.08.31
23.08.23 수  (1) 2023.08.31
23.08.22 화  (0) 2023.08.31
23.08.18 금  (0) 2023.08.27
23.08.14 월  (0) 2023.08.27
'Study/🌱 SeSAC' 카테고리의 다른 글
  • 23.08.23 수
  • 23.08.22 화
  • 23.08.18 금
  • 23.08.14 월
김졀니
김졀니
🍎 iOS 개발
  • 김졀니
    졀니의 개발 공부✨
    김졀니
  • 전체
    오늘
    어제
    • 분류 전체보기
      • iOS
        • Swift
        • UIKit&SwiftUI
        • RxSwift&Combine
        • WWDC
      • Study
        • 🚨 TroubleShooting
        • 🌱 SeSAC
  • 블로그 메뉴

    • 홈
    • Github
  • 인기 글

  • 최근 글

  • 태그

    Sendable
    Realm
    swiftdata
    traits
    동시성프로그래밍
    observable
    FileManager
    의존성 주입
    Swift
    kingfisher header
    wwdc23
    swift concurrency
    concurrency
    Drawing Cycle
    pointfree
    RxSwift
    CLLocation
    clipstobounds
    mapkit
    actor
    OperationQueue
    mainactor
    displayPriority
    ReactorKit
    layoutIfNeeded
    이미지 캐싱
    @PropertyWrapper
    위치 권한
    인앱리뷰
    ios
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
김졀니
23.08.21 월
상단으로

티스토리툴바