아이폰 6.4.7, 5.5inch 대응 노트
Xcode6이 사용됩니다.
노동시간에 대응하다
아이폰54inch의 대응은 거의 Autosizing이기 때문에 번거롭지 않다.아이폰6, 6플러스도 디스플레이 영역이 가로로 넓어지고 있어 오토라유튜브를 사용해야 한다.
Auto Layout은 Autosizing보다 더 복잡하고 대응 시간이 필요합니다.애플리케이션의 볼륨에 따라 약 3일에서 2주 정도 소요됩니다.
지원되지 않는 애플리케이션은 어떻게 됩니까?
아이폰6 해상도가 최적화되지 않은 프로그램이 확대됩니다.
아이폰5와 6플러스는 가로세로비율(가로세로비)이 거의 같아 검은색 테두리가 위아래로 표시되지 않는다.
아이폰6와 플러스 해상도
모델
크기
해상도
기본 해상도
비례하다
ppi
iPhone4
3.5인치
640x960
320x480의 2배 해상도
1.5
330
iPhone5
4인치
640x1136
320x568의 2배 해상도
1.775
326
iPhone6
4.7인치
750x1334
375x667의 2배 해상도
1.778666667
326
iPhone6 Plus
5.5인치
1080x1920
414x736의 3배 해상도(1242x2208 디스플레이 축소)
1.777777778
400
대응 방법
Launch Screen
Launch Screen File이 있으면 아이폰6에 가장 적합한 해상도로 여겨져 애플리케이션이 확대 표시되지 않는다.
App Icons and Launch Images의 Launch Screen
Launch Screen.xib은 iOS 8 이후에 지원됩니다.스파크 화면에xib를 사용할 수 있어 편리합니다.
Launch Image Source
Lauch Image Source에 아이폰6, 6 Plus용 이미지를 넣어도 내 환경에서는 아이폰6 해상도에 가장 적합하다고 여겨지지 않는다.
이미지에 스파크 화면을 표시하려면 iOS 8.0 and Later를 선택해야 합니다.
Autosizing 기반 대응
간단한 레이아웃의 경우 Auto Layout을 사용하지 않고 Autosizing만 사용할 수 있습니다.
배경 이미지 등을 가로로 확장합니다.
이미지에 배치하기 싫은 부분이 있으면 re sizableImageWithCapInsets를 통해 처리할 수 있습니다.
//iPhone6 対応
UIImage *bgImage = [UIImage imageNamed:@"Default-568h.png"];
bgImage = [bgImage resizableImageWithCapInsets:UIEdgeInsetsMake(113.0, 0, 518., 0)
resizingMode:UIImageResizingModeStretch];
[bgImageView setImage:bgImage];
※ resizing Mode에서 UIImage Resizing Mode Stretch가 지정되지 않았을 때 이미지가 반복적으로 표시됩니다.Auto Layout을 통한 대응
Autosizing만 대응할 수 없는 부분이 생길 것 같습니다.그런 xib은 Auto Layout으로 대응합니다.
xib 오른쪽에 있는 Use Auto Layout에서 선택
Auto Layout 사용법은 사전에 학습하면 효율성이 향상됩니다.
아래의 사이트는 참고가 되었다.
iOS의 유연한 레이아웃을 지원하는 Auto Layout 시작 #ios7 yahoo
구속이 부족하고 모순은 빨간색 화살표로 해결할 수 있지만 관건은 이 기능을 사용하지 말고 가능한 한 스스로 구속하는 것이다.
Xcode6는 Auto Layout에 대응할 것으로 생각하지만, iOS 7에 맞지 않는 제약을 더하면 iOS 7이 떨어지기 때문에 주의가 필요하다.나는 iOS 7에 대응하는 것이 매우 번거롭기 때문에 iOS 8은 이후에 대응할 것이다.
iOS 7에 해당되는 경우 다음 사항에 유의하십시오.
Constrain to margin 확인 안 함
참고 자료
아이폰6 Plus 힘든 일 3가지
First Baseline 을 사용하지 않음
정보가 적어 조금 자신이 없었지만 First Baseline을 사용하면 떨어진다.
코드에서 Auto Layout에 해당하는 xib의 View 위치를 지정합니다.
't r a n s l a t e s Au t o r e sizingMaskIntoConstraints'는 YES여야 합니다.
// iPhone6対応
musicVolumeLabel.translatesAutoresizingMaskIntoConstraints = YES;
소스 코드의 대응
미리 제작해서 ScreenSize를 얻는 방법이 편리해요.
MyUtils.h
+ (CGSize)getScreenSize;
MyUtils.m+ (CGSize)getScreenSize {
return [[UIScreen mainScreen] bounds].size;
}
원본의 하드코딩 위치에 오프셋 값을 추가합니다. // iPhone6対応
offsetYNot3_5inch = [MyUtils getScreenSize].height - 480.0;
offsetXNot3_5inch = [MyUtils getScreenSize].width - 320.0;
// こんな感じにoffset値を加算
frameMusicVolumeLabel.origin.y = POPUP_LABEL1_Y + offsetYNot3_5inch;
Reference
이 문제에 관하여(아이폰 6.4.7, 5.5inch 대응 노트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ux_design_tokyo/items/02d7010aaa47ea8ff292텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)