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 지원 장치 별 리 소스 소절: 리 소스 프로 그래 밍 가이드
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.