iOS 纯代码适配iPhone6,6+

首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述;第二种方法是和之前iPhone5的类似,比较简单,为iPhone6和6+添加两张特殊的png

iPhone6:命名:Default-375w-667h@2x.png 分辨率:750*1334

6+ 命名:Default-414w-736h@3x.png 分辨率:1242*2208

注意:

如果要在app的介绍页面里有“为iPhone6,6 plus优化”的字样就必须使用第一种方法,使用第二种方法的话还是会显示“为iPhone5优化”

下面说一下纯代码适配

首先iPhone5的界面一定要完全适配,这样才能完美适配6和6Plus。
首先,我么我们要观察一下5,6和6Plus的尺寸比例关系


很明显能看出这三种屏幕的尺寸宽高比是差不多的,因此可以在5的基础上,按比例放大来适配6和6Plus的屏幕。

在AppDelegate.h中


@property float autoSizeScaleX;

@property float autoSizeScaleY;

在AppDelegate.m中


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

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

 

- (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,autoSizeScaleX=1,autoSizeScaleY=1;
如果是6,autoSizeScaleX=1.171875,autoSizeScaleY=1.17429577;
如果是6Plus,autoSizeScaleX=1.29375,autoSizeScaleY=1.2957;
现在我们获取了比例关系后,先来看一下如何解决代码设置界面时的适配。
CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)这个方法使我们常用的设置尺寸的方法,现在我设置了一个类似于这样的方法。
在.m文件中

<pre name="code" class="objc">- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor lightGrayColor];
    
    UIButton *btn_1 = [[UIButton alloc] initWithFrame:CGRectMake1(110, 100, 100, 40)];
    [btn_1 setTitle:@"btn_1" forState:UIControlStateNormal];
    btn_1.backgroundColor = [UIColor redColor];
    [self.view addSubview:btn_1];
    
    UIButton *btn_2 = [[UIButton alloc] initWithFrame:CGRectMake1(110, 150, 100, 40)];
    [btn_2 setTitle:@"btn_2" forState:UIControlStateNormal];
    btn_2.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:btn_2];
    
    UIButton *btn_3 = [[UIButton alloc] initWithFrame:CGRectMake1(110, 200, 100, 40)];
    [btn_3 setTitle:@"btn_3" forState:UIControlStateNormal];
    btn_3.backgroundColor = [UIColor greenColor];
    [self.view addSubview:btn_3];
    
    UIButton *btn_4 = [[UIButton alloc] initWithFrame:CGRectMake1(110, 250, 100, 40)];
    [btn_4 setTitle:@"btn_4" forState:UIControlStateNormal];
    btn_4.backgroundColor = [UIColor blackColor];
    [self.view addSubview:btn_4];
    
}

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


 

这样,这个btn按钮在5,6和6Plus的位置和尺寸比例都是一样的。


如果整个项目做完后才开始做适配的话这个方法的优势就体现出来了,面对几十个工程文件,只需自定义并且替换你的CGRectMake方法,再加上storyBoradAutoLay这个方法就瞬间完成大部分甚至全部的适配,如果遇到tableView的或者其他的手动调整一下即可。

内容: 这个合成医疗保健数据集的创建是为了作为数据科学、机器学习和数据分析爱好者的宝贵资源。 灵感: 医疗保健数据通常很敏感,并受隐私法规的约束,因此难以访问以进行学习和实验。为了解决这一差距,我利用 Python 的 Faker 库生成了一个数据集,该数据集反映了医疗保健记录中常见的结构和属性。通过提供这些合成数据,我希望促进医疗保健分析领域的创新、学习和知识共享。 表格信息: 每列都提供有关患者、其入院情况和提供的医疗保健服务的特定信息,使此数据集适用于医疗保健领域的各种数据分析和建模任务。以下是数据集中每一列的简要说明 - 名字:此列表示与医疗保健记录关联的患者的姓名。 年龄:患者入院时的年龄,以年表示。 性:指示患者的性别,“男性”或“女性”。 血型:患者的血型,可以是常见的血型之一(例如,“A+”、“O-”等)。 医疗状况:此列指定了与患者相关的主要医疗状况或诊断,例如“糖尿病”、“高血压”、“哮喘”等。 入学日期:患者入住医疗机构的日期。 医生:在患者入院期间负责护理的医生的姓名。 医院:标识患者收治的医疗机构或医院。 保险提供商:此列指示患者的保险提供商,可以是多个选项之一,包括“Aetna”、“Blue Cross”、“Cigna”、“UnitedHealthcare”和“Medicare”。 账单金额:患者在入院期间为他们的医疗保健服务开具的账单金额。这表示为浮点数。 房间号:患者入院期间入住的房间号。 入场类型:指定入院类型,可以是“紧急”、“选择性”或“紧急”,以反映入院的情况。 出院日期:患者从医疗机构出院的日期,基于入院日期和实际范围内的随机天数。 药物:确定患者在入院期间开具或服用的药物。例子包括“阿司匹林”、“布洛芬”、“青霉素”、“扑热息痛”和“立普妥”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值