iOS: 인터페이스 어댑터 (1) -- 유 니 버 설 유 니 버 설 유 니 버 설 아이 폰, 아이 패드 어댑터 (방법)

3613 단어 어울리다
머리말
        유 니 버 설 프로그램 하나 요, 아이 폰, 아이 패드 두 가지 버 전 인가요?
        공통:        
장점:
설치 패키지
논리 코드, 데이터 구 조 를 공유 할 수 있 습 니 다.
단점:
패 키 지 를 설치 하 는 것 은 매우 크다. 아이 패드 버 전 은 아이 폰 버 전과 다른 그림 을 사용 하고 아이 패드 의 그림 크기 가 비교적 크 며 쌓 이면 전체 패 키 지 를 크게 만 들 수 있다.
코드 에서 아이 패드 의 논리 적 갈래 여 부 를 판단 하 는 것 은 코드 혼란 을 초래 할 수 있 습 니 다.
        두 가지 버 전의:
장점:
app 은 각각 아이 패드, 아이 폰 의 특징 에 맞추어 디자인 할 수 있다.
패 키 지 는 상대 적 으로 작 을 수 있 습 니 다.
단점:
두 개 는 가방 에 따라 관리 하고 나 누 어 주기 가 쉽 지 않다.
       Point Advice: 만약 당신 의 app, 아이 패드 버 전과 아이 폰 버 전의 인터페이스 가 차이 가 많 지 않다 면 아이 패드 와 아이 폰 을 호 환 하 는 app 을 하 세 요. 그렇지 않 으 면 아이 패드 버 전, 아이 폰 버 전 으로 나 누 어 하 세 요.
    전제 조건
        대상 장치 족 (Build 에 있 는 Targeted Device Family 를 iPhone / iPad 로 선택) 을 수정 합 니 다. 수정 되 지 않 으 면 아이 패드 에서 실 행 됩 니까? 아이 폰 인터페이스 입 니까? '2x' 확대 축소 만 가능 합 니 다. target device 를 수정 한 후에 아이 패드 인터페이스 로 표 시 됩 니 다. 기 존 아이 폰 의 인터페이스 효 과 는 아이 패드 에서 화면의 일부분 만 차지 합 니 다.(ios 6 이후 Target Device 가 Universal 이 든 어떤 device 를 실행 하 든 이 기기 의 인터페이스 크기 를 표시 합 니 다. 디 스 플레이 효 과 는 일부분 만 차지 하 든 화면 을 초과 하 든 코드 를 어떻게 쓰 는 지 보 세 요)
      방안 1: 코드 및 XIB 인터페이스 파일, 코드 는 if 와 else 로 나 누 어 여러 장 치 를 처리 합 니 다.      
         적용 조건:
         아이 폰, 아이 패드 인터페이스 는 레이아웃 이 같 고 비율 이 같 으 며 크기 만 다 를 뿐 initWithFrame, initWithCorder 에서 직접 비율 변환 을 하면 된다.
      방안 2: 코드 한 세트 및 XIB 인터페이스 파일 두 세트, 인터페이스 두 세트 공용 코드
        적용 조건:
          iPhone, iPad 인터페이스 레이아웃 이 다 르 고 기능, 절차, 업무 논리 차이 가 많 지 않 습 니 다.
관련 기술:
1.
코드 의 다른 논리 처리:
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad){
//iPad     ;
}
else{
//iPhone/iPod touch     ;
}

2. 자원 파일 에 대하 여: 
         iOS 지원 장치 별 리 소스 (참고: 홈 페이지 의 iOS 지원 장치 별 리 소스 소절): 형식 은 다음 과 같 습 니 다. 
.
 장치 설명:
일반적으로 xxx ~ ipad. extension + xxx. extension 두 세트 (xxx ~ iphone. extension 필요 없 음)
~ipad - The resource should be loaded on iPad devices only.
~iphone - The resource should be loaded on iPhone or iPod touch devices only.
          의미 하 다
//   
UIImage* anImage = [UIImage imageNamed:@"MyImage.png"];
// On an iPhone or iPod touch device, the system loads the MyImage~iphone.png resource file, while on iPad, it loads the MyImage~ipad.png resource file. If a device-specific version of a resource is not found, the system falls back to looking for a resource with the original filename, which in the preceding example would be an image named MyImage.png
// xib
MyViewController *viewController = [[MyViewController alloc] 
                                     initWithNibName:@"MyViewController" bundle:nil]
// load MyViewController~ipad.xib on an iPad, and MyViewController.xib on other devices
//     

3. 초기 설정 에 대하 여:
          info. plist 파일 에서,
Launch  image, Main nib file base name, Main storyboard file base name, Supported Interface Orientation 등 과 유사 하 게 아이 폰, 아이 패드 의 다른 버 전 으로 설정 할 수 있 습 니 다.
          AppIcon 에 대해 이미지. xcasset 에 도 두 개의 그림 이 있다.
      방안 3: 두 세트의 코드 와 XIB 인터페이스 파일, 두 세트의 코드 와 인 터 페 이 스 는 서로 상관 이 없다
관련 기술:
@interface ViewController : UIViewController
@end

@interface ViewController_iPad : ViewController
@end

@interface ViewController_iPhone : ViewController
@end

          적용 조건:
          아이 폰, 아이 패드 인터페이스 레이아웃 이 다 르 고 기능, 절차, 비 즈 니스 논리 가 다르다.
------------------------
참고: 
아이 폰 아이 패드 이식:http://blog.csdn.net/ch_soft/article/details/7099534
iOS 지원 장치 별 리 소스 소절: 리 소스 프로 그래 밍 가이드

좋은 웹페이지 즐겨찾기