如何自适应ios设备大小

在编写移动端GIS程序的时候,经常要根据ios设备的大小来设置UI,以前我在ios程序中,需要定义设备的值(如:宽度和高度),如:

//屏幕宽度 高度

#define kScreenWidth 320

#define kScreenHeight 548

但是如果是不同的设备,如iphone4、iphone5,甚至是ipad等设备,那么就要改变代码,非常不方便,其实ios是提供方法来解决这个问题的。

如下所示:

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

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

另外,ipad设备或者iphone设备也是很容易辨别的,如下所示:

//判断iphone ipad

#define isiPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

#define isiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

如何自适应ios设备大小

时间: 2024-10-02 06:41:00

如何自适应ios设备大小的相关文章

iOS文字大小自适应库(MBFontAdapter)诞生记

背景 什么是iOS文字大小自适应?单纯回答这个问题实在太困难-所以讲一个故事,就很好理解了: 某天做UI设计的妹子弱弱地问我:"我们的app可不可以实现文字的字号在iPhone6上和iPhone6Plus上比iPhone4s和iPhone5大一些?如果要实现难度是不是比较大?工作量会不会增加很多?"其实当我听到这个问题的时候,我整个人都不好了,因为目前主流的app貌似没有这么干的.然而,这个时候能回答不可以么?能回答很难么?能回答工作量会增加很多么?能告诉UI主流app都不这么干么?显

使IFRAME在iOS设备上支持滚动

原文链接: Scroll IFRAMEs on iOS原文日期: 2014年07月02日 翻译日期: 2014年07月10日翻译人员: 铁锚 很长时间以来, iOS设备上Safari中超出边界的元素将不能滚动,处理这种问题对开发人员来说一直是种折磨. 对原文作者的博客来说,这特别让人无奈,因为demo程序都是在沙箱IFRAMEs中运行的,这是为了不影响博客网站的AJAX页面加载策略.  通过一些研究发现,只要设置两个CSS属性,以及加上一个元素,这个问题就解决了. Here we go!(译者注

iOS设备的尺寸和分辨率

iOS 设备按照尺寸分成Phone/Touch和Pad开发,各自分辨率如下: 1 尺寸和分辨率 iPhone/iPod Touch 设备名 分辨率 屏幕类型 iPhone 1/3G/3GS, iTouch 1/2/3 320x480 普通屏 iPhone 4/4S, iTouch 4 640x960 3:2 Retina屏 iPhone 5/5S, iTouch 5 640x1136 16:9 Retina屏 iPad 设备名 分辨率 屏幕类型 iPad 1/2/mini 768x1024 普通

【转】使IFRAME在iOS设备上支持滚动

原文链接: Scroll IFRAMEs on iOS原文日期: 2014年07月02日 翻译日期: 2014年07月10日翻译人员: 铁锚 很长时间以来, iOS设备上Safari中超出边界的元素将不能滚动,处理这种问题对开发人员来说一直是种折磨. 对原文作者的博客来说,这特别让人无奈,因为demo程序都是在沙箱IFRAMEs中运行的,这是为了不影响博客网站的AJAX页面加载策略.  通过一些研究发现,只要设置两个CSS属性,以及加上一个元素,这个问题就解决了. Here we go!(译者注

IOS 设备 iTunesCDB 文件详细解析(一)

IOS 移动设备里面有一个媒体数据库文件,这个文件保存了当前设备的媒体信息,比如音乐,视频,电子书,铃声等等,都保存在这里,废话不多说了 iTunesCDB 是一个二进制的文件,其中是用节点来组织的,每个节点都包含特定的信息,比如节点类型,节点头大小,子节点个数等等.有点像xml,但是和xml 又不一样,xml 是闭合的. 用二进制编辑器打开这个文件可以看到 MHBD 头 二进制文件的头四个字节mhbd 是一个标识,根据特定的标识不同的解析,在解析的时候只要关心自己需要的字段,其他不明白的字段读

现有IOS设备唯一标示符的方案比较

现有IOS设备唯一标示符的方案比较 UDID [[UIDevice currentDevice] uniqueIdentfier] iOS官方最早提供的UDID方案,根据某一公式,使用设备序列号.网卡地址等信息作为参数计算而来,iOS6之后该计算公式发生了改变. 该方法返回的结果在所有应用中都相同,并且卸载应用.刷机.还原设备均不会发生改变,是最为准确的设备唯一标示符. iOS5之后,该方法被标记为废弃!最终,在2013年5月1号之后,AppStore禁止任何使用该方法的应用上架. iOS7中对

Charles ios设备抓包

在Mac下做开发,用Fiddler抓包由于离不开Windows比较痛苦,还好有Charles,到官网http://www.charlesproxy.com/可下载到最新版本(若不支持rMBP可拖到Retinizer中把文字变清晰) HTTP抓包 打开Charles程序 查看Mac电脑的IP地址,如192.168.1.7 打开iOS设置,进入当前wifi连接,设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.1.7,端口填8888 iOS设备打开你要抓包的app进行网络

利用预渲染加速iOS设备的图像显示

    最近在做一个UITableView的例子,发现滚动时的性能还不错.但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感. 于是我猜想显示过的图像肯定是被缓存起来了,查了下文档后发现果然如此. 后来在<Improving Image Drawing Performance on iOS>一文中找到了一些提示:原来在显示图像时,解压和重采样会消耗很多CPU时间:而如果预先在一个bitmap context里画出图像,再缓存这个图像,就能省去这些繁重的工作了. 接着我

远程获取iOS设备的屏幕截图

一个远程获取iOS设备屏幕的例子,Client采用TCP连接iOS设备的2115端口,然后读取PNG格式的数据流. +VSRemoteScreen.h +VSRemoteScreen.m 添加到你的iOS项目中,然后在App启动时调用startScreenServer函数. +client.php client示例文件 [1].[代码] RemoteScreen 跳至 [1] [2] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21