objective-c - 检测isIpad的更好方法?

标签 objective-c xcode ios

我有一个通用应用程序,可以根据用户拥有的设备更改屏幕布局。
它似乎工作得很好,但我有一位用户打电话(并给我发送屏幕截图)他的 iPhone 4 向他展示了 iPad View 而不是 iPhone View 。我无法在我们周围的任何手机上复制它,但我想知道自从 iOS 4.3 发布以来是否有更好的方法来做到这一点。

+(BOOL)isIpad{
  return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad);
}

或者,有没有办法检测屏幕尺寸?我主要使用它来确定表格中元素的宽度,但如果 Apple 推出带有视网膜显示屏的 iPad 3,那么让应用程序相应地调整所有内容会很好。
如果应用程序是纵向或横向的,也很有用。使它像 WPF 中的元素一样锚定到边缘。

最佳答案

在为通用应用程序加载 XIB 时,这或您已经在做的事情似乎是唯一的方法:

NSString *xibName = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)?@"SomeView~iPad":@"SomeView";

至于屏幕尺寸,这应该有效:
CGRect screenSize = [[UIScreen mainScreen] bounds];

关于objective-c - 检测isIpad的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6046669/

相关文章:

objective-c - XCode 项目 : how to build sub-projects as static libraries?

ios - 具有自动布局的UITableView中的动态列

ios - xcode快捷键导入h文件并添加Delegate方法

iphone - 使用 NSCalendar——获取下个月的第一个星期二

ios - 无法使用 Xcode 8 编译的 Metal 函数

xcode - 如何在swift中为数字添加逗号?

ios - 显示空白屏幕的webview屏幕截图

ios - 文档 Main.storyboard 需要 Xcode 8.0 或更高版本

ios - revealViewController 委托(delegate)不起作用

objective-c - 在 UIScrollView 中通过两次触摸识别滑动