아이폰 6.4.7, 5.5inch 대응 노트

7352 단어 아이폰 개발iOS
기존 앱을 아이폰6시에 맞춘 노트다.
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;

좋은 웹페이지 즐겨찾기