我有一款可以在iPhone和iPod Touch上运行的应用程序,它可以在Retina iPad和所有设备上运行,但需要做一个调整.我需要检测当前设备是否是iPad.我可以使用什么代码来检测用户是否在使用我的UIViewController中的iPad,然后进行相应的更改?

推荐答案

有相当多的方法可以判断设备是否是iPad.这是我最喜欢的判断设备是否是iPad的方式:

if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
{
    return YES; /* Device is iPad */
}

我使用它的方式

#define IDIOM    UI_USER_INTERFACE_IDIOM()
#define IPAD     UIUserInterfaceIdiomPad

if ( IDIOM == IPAD ) {
    /* do something specifically for iPad. */
} else {
    /* do something specifically for iPhone or iPod touch. */
}   

其他例子

if ( [(NSString*)[UIDevice currentDevice].model hasPrefix:@"iPad"] ) {
    return YES; /* Device is iPad */
}

#define IPAD     (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
if ( IPAD ) 
     return YES;

有关SWIFT解决方案,请参阅此答案:https://stackoverflow.com/a/27517536/2057171

Ios相关问答推荐

SWIFT图表轴订购问题

在SwiftUI中动态隐藏列表的空部分

RxSwift:如何使用另外两个可观测对象(其中一个依赖于另一个)创建可观测对象?

ios PWA从外部链接返回后降低了innerheight

swift|在具有自定义单元格的多个TableView中没有任何内容

如何在Swift中同时实现三个手势?

如何在 SwiftUI 中通过通用 @ObservedObject 进行切换?

在 Swift 中从 Objective C 集合调用块

如何根据条件快速将返回类型设为 LinearGradient 或 AngularGradient?

Xcode14 启动时崩溃:dyld:库未加载:/usr/lib/swift/libswiftCoreGraphics.dylib

react 在 android 上运行的本机应用程序,但在 iOS 上出现问题,详细信息在描述中共享

@Environment 的存在会导致列表在滚动时不断重建其内容

使用实时数据库的应用程序无法在被 Firebase 阻止的罗马尼亚 ISP 中运行

UICollectionView - 水平滚动,水平布局?

在 UICollectionView 上从右到左对齐

CocoaPods 找不到 podFirebase/Core的兼容版本 | cloud_firestore, Flutter

通过 segue 传递数据

@IBDesignable 崩溃代理

如何在 iphone 屏幕中间显示活动指示器?

Parse for iOS:try 运行应用程序时出错