iOS 개발 전 기종 적합 솔 루 션
3585 단어 iOS 개발전 기종 이 적합 하 다.
오늘 은 최근 에 연구 한 모든 기종 의 적합 한 방향 에 대해 이야기 할 계획 이다.
현재 우리 에 게 적합 한 아이 폰 모델 은 4s,5s,6s,6Plus 네 가지 모델 이 필요 하 다.그것들의 사 이 즈 는 각각
iphone4s {320, 480} 960*640
iphone5 5s {320, 568} 1136*640
iphone6 6s {375, 667} 1334*750
iphone6Plus 6sPlus {414, 736} 1920*1080
보통 저 는 실제 프로젝트 개발 에서 Masonary 를 사용 하여 UI 인 터 페 이 스 를 구축 하 는 습관 이 있 습 니 다.Masonary 에서 우 리 는 각 컨트롤 간 의 제약 을 편리 하 게 설정 할 수 있 지만 4s 모델 과 6s Plus 모델 과 비슷 한 높이 가 낮 고 가끔 은 일회 성 제약 만 으로 는 합 리 적 인 인 인 터 페 이 스 를 구축 하지 못 합 니 다.
그래서 이번에 UI 를 구축 하 는 과정 에서 제 생각 은 비례 에 따라 각 기종 을 미세 조정 하 는 것 입 니 다.사고방식 은 다음 과 같다.
미 공 이 제공 하 는 효과 도 는 아이 폰 6 의 효과 도 를 바탕 으로 한다.
나 는 아이 폰 6 에 표 시 된 사 이 즈 를 비교 해 비율 을 환산 해 야 한다.그러면 일부 간격 은 기종 에 따라 달라 질 수 있다.
상호작용 체험 을 고려 한 컨트롤 에 대해 사이즈 가 변 하지 않 는 토대 에서 디 테 일 을 미세 조정 한다.
구체 적 인 코드 에서 나 는 하나의 종 류 를 봉 하여 두 가지 방법 으로 모든 기종 의 높이 와 너 비 를 맞 추 는 것 을 정의 했다.아 이 디 어 는 아이 폰 6 의 비율 에 따라 잘 어 울 리 는 것 이다.
코드 나 도 일부 붙 여 놓 을 게.
헤더 파일 정의
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger, IPhoneType) {
iPhone4Type = 0,
iPhone5Type,
iPhone6Type,
iPhone6PlusType
};
@interface CalculateLayout : NSObject
/**
* UI iPhone6
*
* @param height View
*
* @return
*/
+ (CGFloat)neu_layoutForAlliPhoneHeight:(CGFloat)height;
/**
* UI iPhone6
*
* @param width
*
* @return
*/
+ (CGFloat)neu_layoutForAlliPhoneWidth:(CGFloat)width;
.m 파일 의 부분 은 다음 과 같 습 니 다.
#define iPhone4Height (480.f)
#define iPhone4Width (320.f)
#define iPhone5Height (568.f)
#define iPhone5Width (320.f)
#define iPhone6Height (667.f)
#define iPhone6Width (375.f)
#define iPhone6PlusHeight (736.f)
#define iPhone6PlusWidth (414.f)
#pragma mark -
+ (CGFloat)neu_layoutForAlliPhoneHeight:(CGFloat)height {
CGFloat layoutHeight = 0.0f;
if (iPhone4) {
layoutHeight = ( height / iPhone6Height ) * iPhone4Height;
} else if (iPhone5) {
layoutHeight = ( height / iPhone6Height ) * iPhone5Height;
} else if (iPhone6) {
layoutHeight = ( height / iPhone6Height ) * iPhone6Height;
} else if (iPhone6P) {
layoutHeight = ( height / iPhone6Height ) * iPhone6PlusHeight;
} else {
layoutHeight = height;
}
return layoutHeight;
}
+ (CGFloat)neu_layoutForAlliPhoneWidth:(CGFloat)width {
CGFloat layoutWidth = 0.0f;
if (iPhone4) {
layoutWidth = ( width / iPhone6Width ) * iPhone4Width;
} else if (iPhone5) {
layoutWidth = ( width / iPhone6Width ) * iPhone5Width;
} else if (iPhone6) {
layoutWidth = ( width / iPhone6Width ) * iPhone6Width;
} else if (iPhone6P) {
layoutWidth = ( width / iPhone6Width ) * iPhone6PlusWidth;
}
return layoutWidth;
}
코드 는 나 도 이미Github에 놓 았 습 니 다.만약 이것 이 당신 에 게 도움 이 된다 면 클 라 이언 트 코드 의 나머지 에 스타 를 줄 수 있 습 니까?읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
iOS 아리운 대상 저장 OSS 파일 업로드/다운로드 실현이전 프로젝트에서 이미지 음성 등 자원 파일은 서버에 직접 데이터를 업로드하고 서버에 처리하고 저장했다.최근의 이 프로젝트는 서버가 직접 OSS를 열고 클라이언트가 아리운이 제공하는 업로드 다운로드 기능을 사용하여 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.