1. 首先我們看一下 iphone 5(s) ,iphone 6和6 plus 的屏幕比例
所以, 我們可以用比例來適配三者的屏幕.
2.在Appdelegate.h
@property float autoSizeScaleX;
@property float autoSizeScaleY;
如圖所示:
3.在appDelegate.m中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];
if(ScreenHeight > 480){
myDelegate.autoSizeScaleX = ScreenWidth/320;
myDelegate.autoSizeScaleY = ScreenHeight/568;
}else{
myDelegate.autoSizeScaleX = 1.0;
myDelegate.autoSizeScaleY = 1.0;
}
}
如圖所示:因爲iPhone4s屏幕的高度是480,因此當屏幕尺寸大於iPhone4時,autoSizeScaleX和autoSizeScaleY即爲當前屏幕和iPhone5尺寸的寬高比
5.在.pch中或者 全局的那種頭文件裏面寫
CG_INLINE CGRect CGRectMakeScreen(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
{
AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];
CGRect rect;
rect.origin.x = x * myDelegate.autoSizeScaleX; rect.origin.y = y * myDelegate.autoSizeScaleY;
rect.size.width = width * myDelegate.autoSizeScaleX; rect.size.height = height * myDelegate.autoSizeScaleY;
return rect;
}
或者寫到全局的頭文件裏面,我的是header.h
6.使用
用CGRectMakeScreen 代替原本的CGRectmake 就好了