iOS纯代码手动适配

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

iPhone6:命名:[email protected]   分辨率:750*1334

6+ 命名:[email protected]  分辨率:1242*2208

注意:

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

下面说一下纯代码适配

首先iPhone5的界面一定要完全适配,这样才能完美适配6和6Plus。

首先,我么我们要观察一下5,6和6Plus的尺寸比例关系

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

在AppDelegate.h中


1

2


@property float autoSizeScaleX;

@property float autoSizeScaleY;

在AppDelegate.m中


1

2

3

4

5

6

7

8

9

10

11

12

13

14


#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文件中


1

2

3

4

5

6

7

8

9

10

11


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

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的或者其他的手动调整一下即可。

时间: 2024-10-20 04:53:37

iOS纯代码手动适配的相关文章

iOS 纯代码屏幕适配

首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPhone6和6+添加两张特殊的png iPhone6:命名:[email protected]   分辨率:750*1334 6+ 命名:[email protected]  分辨率:1242*2208 注意: 如果要在app的介绍页面里有“为iPhone6,6 plus优化”的字样就必须使用第一种方法

iOS纯代码工程手动快速适配

首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPhone6和6+添加两张特殊的pngiPhone6:命名: 分辨率:75013346+ 命名: 分辨率:12422208注意:如果要在app的介绍页面里有“为iPhone6,6 plus优化”的字样就必须使用第一种方法,使用第二种方法的话还是会显示“为iPhone5优化” 下面说一下纯代码适配首先iPh

iOS纯代码自动布局的那些事(简介)

由于本人也是才开始学习自动布局,所以可能会出现错误,请大家多多包含,并指出错误 关于自动布局,现在很多介绍用xib和storyboard,但是纯代码使用Autolayout越来越少了 下面主要大概的介绍下这几天学习纯代码使用Autolayout的一些可能有用的东西吧. 首先先创建3个UIView 并对view进行初始化 在使用自动布局之前要对子视图的布局方式进行调整,用到 translatesAutoresizingMaskIntoConstraints这个UIView的属性,并且把它设置为no

iOS 纯代码适配iPhone6,6+

链接地址:http://blog.csdn.net/codywangziham01/article/details/37658399 转自:http://www.maxiaoguo.com/clothes/255.html UIWebView  是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法,1.通过storyboard 拖拽 2.通过alloc init 来初始化 创建webview,下列文本中 _webView

Object-C iOS纯代码布局 一堆代码可以放这里!

前言: 最近写的文章都是创业类,好吧,今天好好写写技术类的文章! 不过分享的不是IOS相关的文章,毕竟这几天在速成IOS,看的是objective-c,由于速成的很快,好累! 好在现在基本已经入了点门道了,这才看的懂新人的代码,才能提前感受代码危机. 对于IOS的速成口诀,回头再分享,今天先分享一个简单的抽象封装! 1:先看看问题 说明:通常对于界面布局,有编写代码.Xib.Storyboard三种方式,而我看到新人写的,是通过代码布局的. 看到的代码是这样的: A:编写UI的代码已分离到新的类

iOS纯代码制作欢迎界面——UIScrollView, UIPageControl, UIImageView,UIButton, NSTimer

欢迎界面,还是比较简单的,一个UIScrollView控件,一个UIPageControl,几个UIImageView即可摆平.在这里光玩这些,就显得诚意不足了.特意拓展一下,再加几个UIButton,可以让这个欢迎界面变成可点击的,可滑动的模块添加在页面中,然后再加一个NSTimer,让它自己隔2秒自己循环滑动着,立马让它变成可以放在主页用于展示主打商品的模块. 下面直接展示可直接运行的Demo,代码都挺简单,这次就不添加注解了. #import "ViewController.h"

ios纯代码下的起始页面配置方法

在delegate中: func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {        // Override point for customization after application launch.        let SCREEN_WIDTH = UIScreen.mainScreen

ios纯代码实现小飞机移动

#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //调用设置界面方法 [self setupUI]; } //布置界面方法

ios纯代码实现美元汇率计算

#import "ViewController.h" @interface ViewController () //定义一个文本框属性 @property (nonatomic,weak) UITextField *numText; //定义一个Label属性 @property (nonatomic,weak) UILabel *resultLabel; @end @implementation ViewController - (void)viewDidLoad { [super