iOS中判断设备类型的方法
2014-01-09 15:30
274 查看
在iOS开发上,有时避免不了要做一些设备类型的判断,比如iPhone、iPad。
iOS也给我们提供了几个方法,用来判断这些内容。
文档中公开的主要有三个属性(property),都在UIDevice里面。
其中licalizedModel与model貌似结果都一样的....不知道。本人亲自用iPhone试了换成日文,区域为日本等,这两个返回的都是@“iPhone”。网上google了下,其他人遇到的情况也是这样
所以下面着重讨论model和userInterfaceIdiom这两个接口。
userInterfaceIdiom
这个属性,苹果文档说的很明白,是返回一个枚举,而且只有两个值,那就是:
毫无疑问,iPhone/Universal App在iPhone(包括模拟器)上运行,得到的肯定是UIUserInterfaceIdiomPhone, iPad/Universal App在iPad(包括模拟器)上运行,得到的是UIUserInterfaceIdiomPad。
但是如果一个iPhone App(不是Universal)在iPad(或者模拟器)上运行的结果又是什么呢?可能很多人猜错了。答案是UIUserInterfaceIdiomPhone。
那是为什么呢?原来iPhone App兼容iPad并在iPad上运行的时候,它的屏幕尺寸是和3.5寸屏大小是一致的。它采用的启动图片也与3.5寸屏相同
我们可以验证下,
设备:iPad
系统 : iOS6,iOS7
然后采用下面的代码去创建window:
结果: screenBounds的大小是320*480。
ps. iPad App是不能在iPhone上运行的。
Model
苹果文档描述是返回一个字符串,比如@"iPhone"、@“iPad”。
这个接口没有什么异议,网上也有很多文章说了它的作用。它可以得到以下字符串:
iOS也给我们提供了几个方法,用来判断这些内容。
文档中公开的主要有三个属性(property),都在UIDevice里面。
@property(nonatomic, readonly, retain) NSString *model; @property(nonatomic, readonly) UIUserInterfaceIdiom userInterfaceIdiom; @property(nonatomic, readonly, retain) NSString *localizedModel;
其中licalizedModel与model貌似结果都一样的....不知道。本人亲自用iPhone试了换成日文,区域为日本等,这两个返回的都是@“iPhone”。网上google了下,其他人遇到的情况也是这样
所以下面着重讨论model和userInterfaceIdiom这两个接口。
userInterfaceIdiom
这个属性,苹果文档说的很明白,是返回一个枚举,而且只有两个值,那就是:
UIUserInterfaceIdiomPhone UIUserInterfaceIdiomPad
毫无疑问,iPhone/Universal App在iPhone(包括模拟器)上运行,得到的肯定是UIUserInterfaceIdiomPhone, iPad/Universal App在iPad(包括模拟器)上运行,得到的是UIUserInterfaceIdiomPad。
但是如果一个iPhone App(不是Universal)在iPad(或者模拟器)上运行的结果又是什么呢?可能很多人猜错了。答案是UIUserInterfaceIdiomPhone。
那是为什么呢?原来iPhone App兼容iPad并在iPad上运行的时候,它的屏幕尺寸是和3.5寸屏大小是一致的。它采用的启动图片也与3.5寸屏相同
我们可以验证下,
设备:iPad
系统 : iOS6,iOS7
然后采用下面的代码去创建window:
CGRect screenBounds = [[UIScreen mainScreen] bounds]; self.window = [[UIWindow alloc] initWithFrame:screenBounds];
结果: screenBounds的大小是320*480。
ps. iPad App是不能在iPhone上运行的。
Model
苹果文档描述是返回一个字符串,比如@"iPhone"、@“iPad”。
这个接口没有什么异议,网上也有很多文章说了它的作用。它可以得到以下字符串:
@"iPhone" @"iPad" @"iPod touch" @"iPhone Simulator" @"iPad Simulator"
相关文章推荐
- iOS Dev (24) 最简单的M3U8播放器
- Xamarin最新crack 包含IOS
- iOS 左右滑动 手势 响应方法
- ios开发:NSKeyedUnarchiver,数据序列化,本地存储
- IOS多线程编程之Grand Central Dispatch(GCD)介绍和使
- iOS 6.0旋转兼容的那点事
- ios 中plist文件的一个小用法
- IOS 协议的定义与委托使用(个人)
- Nagios安装配置教程(五)window系统监控
- ios开发中xib使用小技巧
- AIR ANE for iOS打入第三方静态库
- iOS 7室内近场定位-iBeacons协议介绍和小例子
- [IOS] 企业开发者帐号应用发布,证书颁发
- 越狱对iOS 7份额影响很小
- 越狱对iOS 7份额影响很小
- IOS越狱开发之——进程通讯
- iOS下拉刷新上拉加载更多EGOTableViewPullRefresh类库
- IOS 多语言本地化 完美解决方案【自动+手动】
- Windows上开发IOS
- ios6 LayOut