屏幕尺寸适配:一

在.pch中加入以下代码,在定义每个尺寸值的时候都调用下边的宏

//以iphone7为例  定义 view相关的宽高宏
#define IPHONEHIGHT(b) [UIScreen mainScreen].bounds.size.height*((b)/1334.0)
#define IPHONEWIDTH(a) [UIScreen mainScreen].bounds.size.width*((a)/750.0)
//有导航栏和分栏的情况下高度
#define PhoneHight(d) ([UIScreen mainScreen].bounds.size.height-113.0)*((d)/1108.0)
//仅仅有导航栏的情况下高度
#define PHONEHIGHT(d) ([UIScreen mainScreen].bounds.size.height-64.0)*((d)/1206.0)
#define ScreenWidth CGRectGetWidth([UIScreen mainScreen].bounds)
#define ScreenHeight CGRectGetHeight([UIScreen mainScreen].bounds)

 屏幕尺寸适配:二

创建项目-创建PCH文件:若要创建.pch , 在other里选择 PCH file,并需要修改一下设置。在build settings 里设置 Precompile Prefix Header的值为YES,并设置Prefix Header的路径。

创建一个扩展文件UIView+CreaFream.h,(如何创建扩展文件:创建一个objective-c file , 可以选择 category, extension ,protocol, empty 文件。选category 就能建立类别。)再不会了看网址 http://blog.csdn.net/idoshi201109/article/details/51735461

擦,差点忘了 PCH里边的东西了

.pch

#ifndef PrefixHeader_pch
#define PrefixHeader_pch //判断ios版本
#define iOS7 ([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0 ) #import "UIView+CreaFream.h" #define IPHONE4 ScreenRect.size.width ==320 && ScreenRect.size.height ==480 #define IPHONE5 ScreenRect.size.width ==320 && ScreenRect.size.height ==568 #define IPHONE6 ScreenRect.size.width ==375 && ScreenRect.size.height ==667 #define IPHONE6p ScreenRect.size.width ==414 && ScreenRect.size.height ==736 //#define iPhone7 iPhone7P 自己补充,不过和6的尺寸一样的 #define MAS_SHORTHAND
#define MAS_SHORTHAND_GLOBALS #endif /* PrefixHeader_pch */

.h

#import <UIKit/UIKit.h>

@interface UIView (CreaFream)

//只需一个设置间隔 大小的方法
+(CGRect)GetRectWithX:(CGFloat)x Y:(CGFloat)y Width:(CGFloat)W Heigth:(CGFloat)H; @end

  

.m

#import "UIView+CreaFream.h"

@implementation UIView (CreaFream)

//实现方法
+(CGRect)GetRectWithX:(CGFloat)x Y:(CGFloat)y Width:(CGFloat)W Heigth:(CGFloat)H{ CGRect temptect = CGRectZero; //个人喜欢以iPhone 为基准 进行比例大小的对比 if (IPHONE6) {
temptect = CGRectMake(x,y, W, H); }else if ((IPHONE4)||(IPHONE5)){ CGFloat Xscole = 320/375.0;
CGFloat Yscole = 480/667.0; temptect = CGRectMake(x*Xscole, y*Yscole, W*Xscole, Yscole*H); }else if (IPHONE6p){ CGFloat Xscole = 414/375.0;
CGFloat Yscole = 736/667.0; temptect = CGRectMake(x*Xscole, y*Yscole, W*Xscole, Yscole*H); } return temptect;
}
@end

  

就是这样了,在使用的时候,具体就是这样的

//在创建基于 UIView 的试图控件的时候,Frame先不设定,如在创建一个UIImageView的时候:frame 之间用UIView 调用,就可以适应其他屏幕了

 UIImageView * imgView = [[UIImageView alloc] initWithFrame:[UIView GetRectWithX:30 Y:30 Width:100 Heigth:100]];

  

iOS屏幕适配(尺寸适配)的更多相关文章

  1. iOS:界面适配(三)--iPhone不同机型或设备不同尺寸适配(屏幕适配)和系统适配

    对于不同苹果设备,各个参数查看<iOS:机型参数.sdk.xcode各版本>.        机型变化 坐标:表示屏幕物理尺寸大小,坐标变大了,表示机器屏幕尺寸变大了: 像素:表示屏幕图片 ...

  2. iOS 的 APP 在系统中如何适配不同的屏幕的尺寸

    iOS 的 APP 在系统中如何适配不同的屏幕的尺寸 标签: 2007年,初代iPhone发布,屏幕的宽高是 320 x 480 像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到iPhone ...

  3. iOS开发——屏幕尺寸适配

    对于屏幕尺寸适配,目前先指竖屏的方式适合方式1和2. 1.控件尺寸写死的方式,偶尔会用到屏幕的宽度和高度. UILabel *holdLabel = [[UILabel alloc]initWithF ...

  4. 【转载】iOS屏幕适配设计

    移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头疼事儿,只是很多设计师选择性地忽视android适配问题,只出一套iOS平台设计稿.随着苹果发布两种新尺寸的大屏iPhone 6, ...

  5. iOS 屏幕适配:autoResizing autoLayout和sizeClass

    1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很少支持横屏,所以iOS开发者基 ...

  6. IOS - 屏幕适配

    原文:Beginning Auto Layout Tutorial in iOS 7: Part 1 感谢翻译小组成员@answer-huang(博客)热心翻译.如果您有不错的原创或译文,欢迎提交给我 ...

  7. iOS屏幕适配知识

    一.旋转处理    第一步:注册通知 [[NSNotificationCenter defaultCenter] addObserver:self                            ...

  8. 【转】iOS屏幕适配

    一.iOS屏幕适配发展历程 设备 适配技术 4及以前(iPad未出) 直接用代码计算 有了iPad autoResizing 有不同屏幕的iPhone后 autoLayout 有更多不同屏幕的iPho ...

  9. 转:iOS 屏幕适配,autoResizing autoLayout和sizeClass图文详解

    1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很少支持横屏,所以iOS开发者基 ...

随机推荐

  1. PHP+Redis 实例【一】点赞 + 热度 下篇

    这篇主要讲如何将数据保存回Mysql,但是里面还会涉及到如何将错误信息以及提示信息保存到文件里,方便以后的运维,再有就是如何使用PHP写进程BAT. Redis数据刷回数据库前的知识准备 首先针对上篇 ...

  2. 把项目中的那些恶心的无处存储的大块数据都丢到FastDFS之快速搭建

        在我们开发项目的时候,经常会遇到大块数据的问题(2M-100M),比如说保存报表中1w个人的ID号,他就像一个肿瘤一样,存储在服务器哪里都 觉得恶心,放在redis,mongodb中吧,一下子 ...

  3. Hive详解

    1.   Hive基本概念 1.1  Hive简介 1.1.1 什么是Hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 1.1 ...

  4. 数细胞-swust oj

    数细胞(0964) 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.编程需要用到的队列及其相关函数已经实现,你只需要完 ...

  5. 基于文本图形(ncurses)的文本搜索工具 ncgrep

    背景 作为一个VIM党,日常工作开发中,会经常利用grep进行关键词搜索,以快速定位到文件.如图: 利用grep进行文本搜索 但是,这一过程会有两个效率问题: 展示的结果无法进行直接交互,需要手动粘贴 ...

  6. 查找算法(Java实现)

    1.二分查找算法 package other; public class BinarySearch { /* * 循环实现二分查找算法arr 已排好序的数组x 需要查找的数-1 无法查到数据 */ p ...

  7. Codeforces 890B - Vlad and Cafes Set

    B. Vlad and Cafestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputou ...

  8. PhpStorm2017版激活方法、汉化方法以及界面配置

    PhpStorm激活和汉化文件下载网址:http://pan.baidu.com/s/1nuHF1St(提取密码:62cg) PHPMailer的介绍 PhpStorm是一个轻量级且便捷的PHP ID ...

  9. JAVA调用WCF

    Java环境下生成代理类的工具有很多,如wsdl2Java,wsimport 等.本文中使用的工具是wsimport. 1.wsdl2Java 生成命令实例: wsdl2Java -p package ...

  10. 删除kafka的topic及kafka基本命令

    kafka的topic默认是不允许被删除的,删除后在topic后会出现”marked for deletion”字样,实际并未删除,现在创建同样的topic会提示topic已经存在. 解决办法: se ...