关闭

ios中object c纯代码开发屏幕适配处理方法

标签: 布局
286人阅读 评论(0) 收藏 举报
分类:

原文链接

ios中object c纯代码开发屏幕适配处理方法



纯代码开发屏幕适配处理方法:

为适配iphone各个版本的机型,对ui布局中的坐标采用比例的方式进行初始化,在这里选定iphone6作为ui布局

1.首先在AppDelegate.h中定义两个属性:

复制代码
 1 #import <UIKit/UIKit.h>
 2 
 3 @interface AppDelegate : UIResponder <UIApplicationDelegate>
 4 
 5 @property (strong, nonatomic) UIWindow *window;
 6 
 7 
 8 @property(nonatomic,assign)CGFloat autoSizeScaleX;
 9 @property(nonatomic,assign)CGFloat autoSizeScaleY;
10 
11 @end
复制代码

 

 

2.在AppDelegate.m中对属性进行初始化(计算出当前运行的iphone版本的屏幕尺寸跟设计ui时选定的iphone6的比例):

 

复制代码
#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    self.autoSizeScaleX = [UIScreen mainScreen].bounds.size.width/375;
    self.autoSizeScaleY = [UIScreen mainScreen].bounds.size.height/667;
    
    
    return YES;
}@end
复制代码

 

3.在需要使用ui布局的地方,用内联函数进行数据初始化(内联函数会在程序编译的时候执行,这样做的好处是加快程序在运行时候的速度,在运行的时候就不需要再对坐标进  行计算):

 

复制代码
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    [btn setTitle:@"登陆" forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    btn.frame = CGRectMake1(20, 20, 335, 300);
    btn.backgroundColor = [UIColor greenColor];
    [self.view addSubview:btn];
}

//创建内联函数 (在程序编译的时候执行,在函数前声明后编译器执行起来更具效率,使宏的定义更节省,不涉及栈的操作)
CG_INLINE CGRect
CGRectMake1(CGFloat x,CGFloat y,CGFloat width,CGFloat height)
{
    //创建appDelegate 在这不会产生类的对象,(不存在引起循环引用的问题)
    AppDelegate *app = [UIApplication sharedApplication].delegate;
    
    //计算返回
    return CGRectMake(x * app.autoSizeScaleX, y * app.autoSizeScaleY, width * app.autoSizeScaleX, height * app.autoSizeScaleY);
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

@end
复制代码

 

4.进阶:把内联函数些到一个viewController中,然后把这个viewController作为其他viewController的父类,这样做的话可以只写一个内联函数,然后在别的viewController中多次调用和使用,节省代码量。

 

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

iOS开发屏幕适配,纯代码是如何实现的?

【iOS开发】多屏尺的自动适配 AutoLayout (纯代码方式)  (2014-09-19 09:35:47) 转载▼ 标签:  autolayout   ios开发   xcode   ui 分类:&...
  • yuanyuan1314521
  • yuanyuan1314521
  • 2016-05-03 16:26
  • 3170

iOS中的Masonry纯代码适配屏幕例子

文章来自http://www.brighttj.com/ios/ios-masonry-demo.html#comment-353 如果说自动布局解救了多屏幕适配,那众多三方库的出现就解救了系统自动布局的写法。Masonry就是其中一个。 在Github上,Masonry已经得到6000+个...
  • WZZ77521
  • WZZ77521
  • 2015-11-18 11:12
  • 850

iOS屏幕适配的几种方式

在iOS开发中,会经常碰到屏幕适配的问题,下面来说一下自己在项目开发中遇到的几种屏幕适配的方式. 第一种: 利用宽高比,在不同的屏幕中来进行对控件的位置与控件的宽高进行等比例缩放.选定一个型号的屏幕的宽高为基准,进行等比例缩放.例如以iPhone6或者iPhone6s为基准. 其宽高分别是37...
  • anywhereIOS
  • anywhereIOS
  • 2016-07-23 23:48
  • 8703

iOS 纯代码适配iPhone6,6+

首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述;第二种方法是和之前iPhone5的类似,比较简单,为iPhone6和6+添加两张特殊的png iPhone6:命名:Default-375w-667h@2x.p...
  • xiaobo16
  • xiaobo16
  • 2014-12-24 11:29
  • 32533

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

最近写的文章都是创业类,好吧,今天好好写写技术类的文章!毕竟这几天在速成IOS,看的是object-c,由于速成的很快,好累!好在现在基本已经入了点门道了,这才看的懂新人的代码,才能提前感受代码危机。对于IOS的速成口诀,回头再分享,今天先分享一个简单的抽象封装!
  • cyq1162
  • cyq1162
  • 2017-05-12 17:48
  • 687

IOS纯代码实现AutoLayout适配多屏幕

关于AutoLayout,最早从iOS6开始引入使用。主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换。网上大量的资料都在介绍xib和storyboard,如何使用AutoLayout,说纯代码使用AutoLayout进行UI布局的越来越少。对于我这个习惯了代码UI布局的人,写个备忘:A...
  • watertekhqx
  • watertekhqx
  • 2017-05-26 09:54
  • 366

iOS开发之--屏幕适配相关小结

屏幕适配小结 一、纯手动之Autolayout 1、VFL语言添加约束 VFL(Visual format language)语言是苹果为了简化手写Autolayout代码所创建的专门负责编写约束的代码。为我们简化了许多代码量。 2、使用步骤 使用步骤同手动添加约束保持一致 创建控件添...
  • qq136501564
  • qq136501564
  • 2016-07-19 12:43
  • 2152

iOS转前端之如何适配不同屏幕尺寸方案

今天抽空再写一篇~之前已经做了两个Demo,主要是运用CSS+Html完成的,今天还是来完成一个Demo,搭建一个关于宠物的网站。在开始之前我们先介绍一个知识点,关于适配的。 其实对于学习前端来说,H5手机适配也是一个老生常谈的问题了,当然网上也有大牛给了解决方案,这里我就结合自己的实际情况分析...
  • hmh007
  • hmh007
  • 2017-07-27 11:16
  • 1626

IOS 屏幕适配(纯粹通过代码设置坐标和大小的布局方案)

看了网上有很多屏幕适配的文章,大多是用iOS的相对布局来实现屏幕适配(autoLayout,或Masonry)。 一些文章主要解决,iphone6/6p刚出来时,以前只解决屏幕高度适配,现在也要解决屏幕宽度适配的问题。 本文主要解决,项目已经过度过来,但做新的页面时,UI给的设计往往只有ipho...
  • xdrt81y
  • xdrt81y
  • 2016-05-04 14:45
  • 4146

iOS 屏幕尺寸、分辨率、适配

1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI ...
  • ZhengYanFeng1989
  • ZhengYanFeng1989
  • 2016-07-13 16:24
  • 1665
    个人资料
    • 访问:57748次
    • 积分:1053
    • 等级:
    • 排名:千里之外
    • 原创:65篇
    • 转载:12篇
    • 译文:1篇
    • 评论:3条
    博客专栏
    文章分类
    最新评论
    个人专属