iPhone XS max 와 iPhone X R 에 적합 한 방법 예시
4545 단어 어울리다iPhoneXSmaxiPhoneXR
올해 의 세 가지 새 휴대 전 화 는 이미 발표 되 었 고,게다가 Xcode 10 은 이미 GM Seed 버 전 을 발 표 했 으 며,시 뮬 레이 터 를 사용 하여 새 기기 에 적합 할 수 있 으 니 빨리 시작 하 세 요!
세 가지 핸드폰 의 화면 크기
사진 홈 페이지 주소
위 는 픽 셀 단위 입 니 다.그리고 우 리 는 대응 하 는 배 수 를 찾 아-점 pt 로 환산 합 니 다.
사진 홈 페이지 주소
마지막 획득:
iPhone XS 375812pt*
iPhone XR 414896pt*
iPhone X 414896pt*
결론 적 으로 X 는 이미 XS 와 함께 있 기 때문에 기본적으로 무시 하고 상관 하지 않 습 니 다.새로 나 온 XR 과 XS Max 는 화면 픽 셀 이 다 르 지만(LCD 화면 하나 OLED 화면 하나)2x 하나 3x 가 최종 적 으로 얻 은 pt 크기 는 같 습 니 다.게다가 iOS 11 은 safearea Insets 를 도입 하기 시 작 했 습 니 다.만약 에 이 속성 을 사용 했다 면 프로젝트 의 페이지 를 조정 할 필요 가 거의 없습니다.그러면 마지막 으로 두 개의 사 이 즈 를 추가 하 는 시작 그림 만 남 았 습 니 다.
시작 그림 추가
시동 도 를 왜 추가 합 니까?
우리 가 XR 의 시 뮬 레이 터 를 직접 뛰 기 전의 오래된 프로젝트(아이 폰 X 에 적합)를 다음 과 같이 인쇄 하면 다음 과 같은 인쇄 를 할 수 있 습 니 다.
WTF?설마 Xcode 10 bug?XS Max 다시 해 봐.똑 같은 결 과 를 얻 을 수 있 을 거 라 고 믿 어.
여기 설명 좀 해 봐.아이 폰 X 가 처음 나 왔 을 때 어 울 리 지 않 는 항목 을 뛰 면 앱 이 화면 상하 에 각각 몇 십 픽 셀 의 블랙 스크린 을 켜 는 것 을 기억 하 십 니까?아이 폰 X 의 시작 페이지 가 없 기 때 문 입 니 다!마찬가지 로 우 리 는 먼저 시작 페이지 를 도입 해 야 한다.
사진 홈 페이지 주소
이것 은 시작 그림 크기 이 므 로 픽 셀 단위 로 그림 을 자 르 면 됩 니 다.
주의해 야 할 것 은 오래된 프로젝트 가 Xcode 10 으로 열 린 후에 Images.xcassets 폴 더 를 열 고 LaunchImage 폴 더 아래 에 있 을 때 상기 두 개의 새로운 기종 의 자리 잡 이 상 자 를 찾 을 수 없다 는 것 입 니 다.가장 쉬 운 방법 은 오른쪽 단 추 를 누 르 면 새로운 LaunchImage 를 추가 한 다음 에 오래된 LaunchImage 를 삭제 하고 새 폴 더 의 이름 을 LaunchImage 로 바 꾸 는 것 입 니 다.
새로 만 든 LaunchImage 에 두 개의 새 기종 이 자리 잡 는 상자 가 나타 납 니 다.
시작 페이지 를 추가 한 후에 인쇄 를 하면 정확 한 화면 크기 가 됩 니 다!
페이지 가 적합 하 다.
iOS 11 부터 safearea Insets 를 도입 한 것 은 오래된 화제 일 것 이 니 제 소감 을 조금 만 말씀 드 리 겠 습 니 다.
페이지 는 항상 중간 판단 을 써 야 합 니 다.코드 에 safearea Insets 나 앞머리 판단 등 도 구 를 사용 해 야 합 니 다.그래서 저 는 프로젝트 에 UIManager 의 단일 예 를 쓰 는 습관 이 있 습 니 다.이 안 에는 적당 한 속성 을 제공 하 는 동시에 tableView 의 적당 한 조합 등 도 쓸 수 있 습 니 다.
@interface DDUIManager : NSObject
@property (nonatomic, assign, readonly) UIEdgeInsets safeAreaInset;
/*
*
* */
@property (nonatomic, assign, readonly) BOOL isHairHead;
+ (instancetype)sharedManager;
@end
@implementation DDUIManager
- (UIWindow *)keyWindow {
return [UIApplication sharedApplication].keyWindow;
}
- (UIEdgeInsets)safeAreaInset {
if (@available(iOS 11.0, *)) {
if (self.keyWindow) {
return self.keyWindow.safeAreaInsets;
}
}
return UIEdgeInsetsZero;
}
- (BOOL)isHairHead {
if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) {
return self.safeAreaInset.left > 0.0f;
}else {
// ios12 20.0f
return self.safeAreaInset.top > 20.0f;
}
}
@end
이렇게 쓰 는 것 은 사용 이 편리 할 뿐만 아니 라 시스템 의 조건 컴 파일 등 도 피 할 수 있 습 니 다.safearea Inset 은 iOS 11 이기 때문에 나 온 것 입 니 다.또한 e lse 에서 UIEdgeInsets Zero 로 돌아 가 사용 할 때 if-else 문 구 를 절약 할 수 있 습 니 다.예 를 들 어:이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Mark Logic Server] XQuery 튜닝 노트~ 튜닝 보조 도구Mark Logic과 관련해서는 XQuery의 성능 튜닝 기사를 집중적으로 향상시키고자 하는데, 우선 이번에는 Mark Logic에 부착된 튜닝 보조 도구를 소개한다.성능 조정을 시작하는 단계에서는 병목이 무엇인지 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.