在項目的開發(fā)中只洒,其他控件不管在IB里邊還是純代碼形式中都能很簡單的做到自適應(yīng)屏幕的大小咒锻,但往往會忽略掉字體大小的適應(yīng),我們的UI是以6sPlus屏幕為基準(zhǔn)設(shè)計的頁面,我前期只是做了控件的自適應(yīng)调衰,以為字體影響不大,后來在5s上一試拯腮,簡直慘不忍睹窖式。在網(wǎng)上找了好多方法,感覺都不好用动壤,被逼無奈(人都是逼出來的)只能自己想一個辦法了萝喘,沒想到自己設(shè)計的方法簡單好用(自認(rèn)為,大神勿噴。阁簸。)爬早,好了,不說廢話了启妹,showTime!
先說一下思路筛严。
一、先建一個UIVIewController的類目饶米。(沒錯就是類目)
類目的.h文件
@interface UIViewController (baseMethod)//括號里邊的是我取的類目名字
//自適應(yīng)寬度的
- (CGFloat)autoScaleW:(CGFloat)w;
//自適應(yīng)高度的
- (CGFloat)autoScaleH:(CGFloat)h;
@end
.m文件
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height
@interface UIViewController ()
@end
@implementation UIViewController (baseMethod)
#pragma mark - ScaleSize
//說明一下我是以6sPlus為設(shè)計基準(zhǔn)的桨啃,所以是除以414和736 的 ,你們以哪個屏幕大小設(shè)計的檬输,就除以哪個屏幕的寬高照瘾。
//相信里邊的計算公式都能看懂吧(不懂的轉(zhuǎn)行吧。丧慈。析命。)
//想要字體的自適應(yīng)用下邊的任何一個方法都行
//其實不止的字體的適應(yīng),以前計算位置逃默、大小的數(shù)子都可以用這個來轉(zhuǎn)換(具體怎么用后邊會說)
- (CGFloat)autoScaleW:(CGFloat)w{
return w * (kScreenWidth / 414.0f);
}
- (CGFloat)autoScaleH:(CGFloat)h{
return h * (kScreenHeight / 736.0f);
}
二鹃愤、把類目的頭文件導(dǎo)入.pch文件中,導(dǎo)入之后完域,所有的UIViewcontroller都可以用類目里邊的方法了(別說不懂软吐、不懂的可以查查。pch文件的作用和創(chuàng)建方法筒主。非常好用9卦搿D裥贰)
//類目
#import "UIViewController+baseMethod.h"
#import "UITableViewCell+baseMethod.h"
#import "UIView+baseMethod.h"
上邊有其他兩個頭文件是我創(chuàng)建的在UIView里邊和cell里邊用的乌妙。創(chuàng)建方法和我前面說過的UItableView的類目方法一樣,里邊的方法也一樣建钥,很簡單的
三藤韵、具體用法了
cmLabel.font = [UIFont systemFontOfSize:autoScaleW(25)];
看到這里你們懂了沒有。有什么問題可以找我討論熊经。(其實類目很強大的泽艘、很多方法都可以創(chuàng)建在類目里邊。期待你的發(fā)現(xiàn))
在之后的日子里镐依、我會把我在開發(fā)中遇到問題和解決方法都整理出來匹涮、歡迎大家的討論和提出意見!?
謝謝