autolayout 및 safearea
2927 단어 AutoLayoutSwiftSafeAreaiOS
의 목적
아이폰X 대응을 조사하는 단계에서는 오토Layout에서 모호한 이해의 부분을 재인식하고 싶다.
그나저나 세이프아레를 미리 이해하지 않으면 전진할 수 없을 것 같아서 정리도 해봤어요.
뷰 표시의 대략적인 흐름
제 생각에는.
viewDidLayoutSubviews 등을 통해 레이아웃을 업데이트한 후
다시 그려야 하기 때문에 처리가 무거워질 수 있습니다.
최종적으로 조정하고 싶다면viewDidApper인가요?
autoolayout을 사용하면 constraint를 적극적으로 사용합니다.
프로세스 설명 섹션의 그림
bounds와 프레임의 차이에 대해서.
지금까지 제대로 이해하지 못했기 때문에 제대로 이해하려고 했어요.
frame
x, y의 위치는 부모view에서 온 위치를 표시합니다
사이즈가 바운스랑 똑같죠.
bounds
x, y는 자신의 위치를 표시하기 때문에 기본(0.0)
화상도
이런 느낌.
safearea 정보
아이폰X를 가져와서 나왔어요.
아이폰X보다 크기가 큰 장치는 필수다.
지역명
뭔가 덧붙인 그림 같아.
사파이어 사이즈를 얻기 위해서.
이외의 기능도 갖추고 있으며,view시스템의 데이터를 총괄 관리하기 위해 아래의 파일을 제작한다
```
//
// ViewManager.swift
// shotworks_customer
//
//Created by 히라쓰카 준보온 2018/11/12.
// Copyright © 2018 ‚àö√á≈ì√Ñ‚Äö√¢‚Ä¢‚àö√ᬨ‚àû‚àö‚àÇ ‚Äö√Ñ‚àû‚àö‚àè‚àö¬ß‚àö√£¬¨‚à´‚àö√Ü. All rights reserved.
//
import Foundation
//view 시스템의 값 관리
struct ViewManager {
static let rootViewController = UIApplication.shared.keyWindow?.rootViewController
static let statusBarHeight = UIApplication.shared.statusBarFrame.size.height
static var currentWindow: UIWindow? {
if let window = UIApplication.shared.keyWindow {
return window
} else {
return UIApplication.shared.windows[safe:0]
}
}
// デフォルトFloat(44)としてUnwrap
static func navigationBarHeight(callFrom: UIViewController) -> CGFloat {
return callFrom.navigationController?.navigationBar.frame.size.height ?? 44
}
// デフォルトFloat(44)としてUnwrap
static func tabBarHeight(callFrom: UIViewController) -> CGFloat {
return callFrom.tabBarController?.tabBar.frame.size.height ?? 52
}
/// topのsafeArea
static var topSafeArea: CGFloat{
if #available(iOS 11.0, *) {
return ViewManager.currentWindow?.safeAreaInsets.top ?? 0
}else{
return 0
}
}
/// bottomのsafeArea
static var bottomSafeArea: CGFloat{
if #available(iOS 11.0, *) {
return ViewManager.currentWindow?.safeAreaInsets.bottom ?? 0
}else{
return 0
}
}
}
# 参照
https://qiita.com/shtnkgm/items/f133f73baaa71172efb2
Reference
이 문제에 관하여(autolayout 및 safearea), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shiratsu/items/2a13abe61d41cab34e8a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)