[iOS]代码进行设备屏幕判断的最佳实践方案讨论

目前开发的项目由于历史原因均用代码编写UI,所以判断设备尺寸成了不可避免的任务。

目前我是这样进行尺寸判断的。

首先定义一个枚举类,包含了所有的尺寸类型:

// 屏幕尺寸的枚举类型
typedef NS_ENUM(NSUInteger, ScreenSizeType) {
    iPhone4Size,    // 480
    iPhone5Size,    // 568
    iPhone6Size,    // 667
    iPhone6pSize,   // 736
};

然后写一个静态函数获取当前的尺寸类型:

+(ScreenSizeType)getScreenSizeType {
    if (kScreenBounds.size.height == 736) {
        return iPhone6pSize;
    } else if (kScreenBounds.size.height == 667) {
        return iPhone6Size;
    } else if (kScreenBounds.size.height == 568) {
        return iPhone5Size;
    }
    return iPhone4Size;
}

然后再通过宏获取这个类型:

#define kScreenSizeType [PublicFunction getScreenSizeType]

最后,使用的时候这样:

int a = kScreenSizeType == iPhone6pSize ? 1 : 0;

不清楚大家是怎么实现的。希望可以评论讨论下。

时间: 2024-10-05 09:35:44

[iOS]代码进行设备屏幕判断的最佳实践方案讨论的相关文章

(Android第一行代码实验一)活动的最佳实践

活动的最佳实践    1.知晓当前是在哪一个活动         这个技巧将教会你,如何根据程序当前的界面就能判断出这是哪一个活动.  首先需要新建一个 BaseActivity 继承自 Activity,然后在 BaseActivity中重写 onCreate()方法.         public class BaseActivity extends Activity {                @Override              protected void onCreat

memcache的最佳实践方案

1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid -d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP

不容错过,Code Review 的最佳实践方案来了

前言 我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题.包括像Google.微软这些公司,Code Review都是基本要求,代码合并之前必须要有人审查通过才行. 然而对于我观察到的大部分软件开发团队来说,认真做Code Review的很少,有的流于形式,有的可能根本就没有Code Review的环节,代码质量只依赖于事后的测试.也有些团队想做好代码审查,但不知道怎么做比较好.网上关于如何做Code Review的文章

memcached的最佳实践方案(转)

基本问题 1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid -d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服

memcached的最佳实践方案

基本问题 1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid -d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服

Google I/O 2013 最佳实践(1) - res资源篇

最近在看Google I/O 2013 App源码,记录一下新学习到的新功能与方法,此篇先从res资源文件开始.先来看看目录结构: drawable-ldrtl-mdpi: ldrtl是layout-direction-right-to-left的缩写,意味着布局方式从右到左,主要是为了适配阿拉伯语用.这应该是API17,即Android4.2上新出的功能. drawable-nodpi: 此目录资源的文件会提供给任意密度的屏幕使用,系统不会因为屏幕密度的不同而放大该图片. drawable-s

ngx_lua应用最佳实践

引子: 以下文字,是UPYUN系统开发工程师timebug在SegmentFault D-Day南京站技术沙龙上所做分享的内容要义提炼,主题为UPYUN系统开发团队在进行业务逻辑由C模块到ngx_lua的迁移过程中产生的心得体会,以及在NGINX上基于ngx_lua的方面的最佳实践方案. Upyun公众号:upaiyun --------------------------------------------------------------------- ngx_lua 是一个NGINX的第

转 Web程序优化的最佳实践:Cookie、图片及移动应用篇

[编者按]来自Yahoo!的Exceptional Performance团队为我们带来了改善Web性能的最佳实践方案.为此,他们为此进行了 一系列的实验.开发了各种工具.写了大量的文章和博客并在各种会议上参与探讨.最佳实践的核心就是提高网站性能.通过各种努力,xcetional Performance团队总结出了一系列可以提高网站速度的方法.可以分为 7 大类 34 条.包括内容.服务器.cookie.CSS.JavaScript.图片.移动应用等七部分. 延伸阅读: Web程序优化的最佳实践

web移动开发最佳实践之 css篇

web移动开发最佳实践之 css篇 一.css概述 css即层叠样式表(Cascading Style Sheets),它的作用主要是控制页面元素的样式,包括布局.颜色.字体.字号.空白.边框.属性等等.css的出现使得html的内容和样式分离,极大的提高了工作效率. 目前最新的标准是css3,下面几节将介绍在使用css过程中应遵循的最佳实践方案. 二.使用高效的css选择器 欲创建一个高效的web应用,你要了解浏览器是如何读取你的web页面并呈现出来的.当浏览器读取你的html文档时,它首先对