您的位置:首页 > 移动开发 > IOS开发

iOS 屏幕适配

2016-04-06 22:38 417 查看
对于iOS开发,屏幕的适配真的很重要,在这里就不多说了,今天主要给大家介绍一下按比例适配;

1.首先我们在 AppDelegate.h 里面定义两个宏定义,屏幕的宽和高

#import <UIKit/UIKit.h>

//宏定义

#define ScreenHEIGHT [[UIScreen mainScreen] bounds].size.height

#define ScreenWIDTH [[UIScreen mainScreen] bounds].size.width

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

//设置自动缩放的比例

@property (nonatomic ,assign) float autoSizeScaleX;

@property (nonatomic ,assign) float autoSizeScaleY;

@end

2.在AppDelegate.m文件里面实现了计算缩放屏幕的的倍数:

#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

//创建一个UIApplication的单例,并且指定代理,这样就可以传值了

AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];

//判断屏幕的高度如果 大于480 ,注意这里是以5s为基准

if (ScreenHEIGHT >480) {

//计算出自动缩放的倍数

myDelegate.autoSizeScaleX = ScreenWIDTH/320;

myDelegate.autoSizeScaleY = ScreenHEIGHT/568;

}

else{

//小于480 就是iPhoneon4,所以正常显示

myDelegate.autoSizeScaleX = 1.0;

myDelegate.autoSizeScaleY = 1.0;

}

return YES;

}

3.在要屏幕适配的页面加上一个 CG_INLINE CGRect(内联函数):

#import "ViewController.h"

#import "AppDelegate.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

//内联函数

CG_INLINE CGRect

// 重新定义控件的尺寸

CGRentMake1(CGFloat x, CGFloat y, CGFloat width, CGFloat height){

CGRect rect;

AppDelegate *myappdelegate = [[UIApplication sharedApplication] delegate];

//按比例缩放 坐标,和尺寸

rect.origin.x = x*myappdelegate.autoSizeScaleX;

rect.origin.y = y*myappdelegate.autoSizeScaleY;

rect.size.width = width*myappdelegate.autoSizeScaleX;

rect.size.height = width*myappdelegate.autoSizeScaleY;

return rect;

}

@end

4.写完内联函数后,以后你定义的控件的frame 都不要用CGRectMake来设置尺寸了,用重新定义控件的CGRentMake1来设置,这样就实现了自动缩放了,可以任性在

iphone任意尺寸上用了。赶快试试吧!

注意:此方法只适用于精度不是要求高的应用;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: