iOS 控件寬高字體大小適配方法

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 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;
   
}


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));
發佈了34 篇原創文章 · 獲贊 1 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章