屏幕适配

AppDelegate.h

#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property float autoSizeScaleX;
@property float autoSizeScaleY;
@end

AppDelegate.m

#import "AppDelegate.h"
#define ScreenHeight [[UIScreen mainScreen] bounds].size.height
#define ScreenWidth [[UIScreen mainScreen] bounds].size.width
@interface AppDelegate ()

@end

@implementation AppDelegate


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

    AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];
    if (ScreenHeight > 568 || ScreenHeight < 568) {
        myDelegate.autoSizeScaleX = ScreenWidth / 320;
        myDelegate.autoSizeScaleY = ScreenWidth / 568;
    } else {
        myDelegate.autoSizeScaleX = 1.0;
        myDelegate.autoSizeScaleY = 1.0;
    }
    return YES;
}

ViewController.m

#import "ViewController.h"
#import "AppDelegate.h"
@interface ViewController ()

@end
@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    UIImageView *imageview = [[UIImageView alloc] initWithFrame:CGRectMake1(100, 100, 50, 50)];

    imageview.backgroundColor = [UIColor redColor];
    [self.view addSubview:imageview];
}

CG_INLINE CGRect  CGRectMake1(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;

    if (ScreenHeight == 480) {
        rect.origin.x = x * myDelegate.autoSizeScaleY;
        rect.origin.y = y * myDelegate.autoSizeScaleY;
        rect.size.width = width * myDelegate.autoSizeScaleY;
        rect.size.height = height * myDelegate.autoSizeScaleY;
    }
    return rect;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值