1.在AppDelegate.h裏面設置兩個方法:
- (CGFloat)autoScaleW:(CGFloat)w;
- (CGFloat)autoScaleH:(CGFloat)h;
2.在AppDelegate.m裏面設置兩個屬性:
//當前屏幕與設計尺寸(iPhone6)寬度比例
@property(nonatomic,assign)CGFloat autoSizeScaleW;
//當前屏幕與設計尺寸(iPhone6)高度比例
@property(nonatomic,assign)CGFloat autoSizeScaleW;
//當前屏幕與設計尺寸(iPhone6)高度比例
@property(nonatomic,assign)CGFloat autoSizeScaleH;
實現自定義方法- (void)initAutoScaleSize;
在- (BOOL)application:(UIApplication*)application
didFinishLaunchingWithOptions:(NSDictionary*)launchOptions;中調用此方法
#pragma mark - ScaleSize
- (void)initAutoScaleSize{
if (kScreenHeight==480) {
//4s
_autoSizeScaleW =kScreenWith/375;
_autoSizeScaleH =kScreenHeight/667;
}elseif(kScreenHeight==568) {
//5
_autoSizeScaleW =kScreenWith/375;
_autoSizeScaleH =kScreenHeight/667;
}elseif(kScreenHeight==667){
//6
_autoSizeScaleW =kScreenWith/375;
_autoSizeScaleH =kScreenHeight/667;
}elseif(kScreenHeight==736){
//6p
_autoSizeScaleW =kScreenWith/375;
_autoSizeScaleH =kScreenHeight/667;
}else{
_autoSizeScaleW =1;
_autoSizeScaleH =1;
}
}
- (CGFloat)autoScaleW:(CGFloat)w{
return w * self.autoSizeScaleW;
}
- (CGFloat)autoScaleH:(CGFloat)h{
return h * self.autoSizeScaleH;
if (kScreenHeight==480) {
//4s
_autoSizeScaleW =kScreenWith/375;
_autoSizeScaleH =kScreenHeight/667;
}elseif(kScreenHeight==568) {
//5
_autoSizeScaleW =kScreenWith/375;
_autoSizeScaleH =kScreenHeight/667;
}elseif(kScreenHeight==667){
//6
_autoSizeScaleW =kScreenWith/375;
_autoSizeScaleH =kScreenHeight/667;
}elseif(kScreenHeight==736){
//6p
_autoSizeScaleW =kScreenWith/375;
_autoSizeScaleH =kScreenHeight/667;
}else{
_autoSizeScaleW =1;
_autoSizeScaleH =1;
}
}
- (CGFloat)autoScaleW:(CGFloat)w{
return w * self.autoSizeScaleW;
}
- (CGFloat)autoScaleH:(CGFloat)h{
return h * self.autoSizeScaleH;
}
3.在pch文件中設置宏定義(別忘了在pch裏面引用AppDelegate.h文件哦,否則這個宏會報錯呢)
#define autoScaleW(width) [(AppDelegate *)[UIApplication sharedApplication].delegate autoScaleW:width]
#define autoScaleH(height) [(AppDelegate *)[UIApplication sharedApplication].delegate autoScaleH:height]
4.寫控件時設置字體大小:
[UIFontsystemFontOfSize:autoScaleW(14)]
設置frame:
CGRectMake(CGRectGetMaxX(self.productNameLabel.frame)
+
10 ,
self.productNameLabel.top+3,autoScaleW(32),autoScaleW(17));