相关疑难解决方法(0)

如何确定当前的iPhone /设备型号?

有没有办法在Swift中获取设备型号名称(iPhone 4S,iPhone 5,iPhone 5S等)?

我知道有一个名为的属性,UIDevice.currentDevice().model但它只返回设备类型(iPod touch,iPhone,iPad,iPhone模拟器等).

我也知道可以使用这种方法在Objective-C中轻松完成:

#import <sys/utsname.h>

struct utsname systemInfo;
uname(&systemInfo);

NSString* deviceModel = [NSString stringWithCString:systemInfo.machine
                          encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

但是我正在Swift中开发我的iPhone应用程序,所以有人可以用同样的方式帮助我在Swift中解决这个问题吗?

iphone device ios swift

358
推荐指数
16
解决办法
23万
查看次数

如何在iOS上获取设备制作和型号?

我想知道是否可以确定当前设备是什么类型的iPhone(例如)?我知道有可能通过这个模型
NSString *deviceType = [[UIDevice currentDevice] model];
只返回我是否有"iPhone"或"iPod",但我想知道是否有可能检测/知道我是否有iPhone 3GS与iPhone 4对比一个iPhone 4S (实际上,我真正想做的就是确定我是否有3G,因为我做的是相当图形密集的东西).

所以是的,请告诉我,谢谢!

iphone objective-c ipad ios

238
推荐指数
11
解决办法
22万
查看次数

iOS如何通过宏检测iPhone X,iPhone 6 plus,iPhone 6,iPhone 5,iPhone 4?

如何通过宏检测设备模型?我曾经使用过这样的东西但模拟器上的结果总是IS_IPHONE_5

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0)
#define IS_IPHONE_6PLUS (IS_IPHONE && [[UIScreen mainScreen] nativeScale] == 3.0f)
#define IS_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0)
#define IS_RETINA ([[UIScreen mainScreen] scale] == 2.0)  
Run Code Online (Sandbox Code Playgroud)

iphone macros detect

110
推荐指数
9
解决办法
8万
查看次数

UIView中的safeAreaInsets在iPhone X上为0

我正在更新我的应用程序,以适应iPhone X.所有视图现在工作正常,除了一个.我有一个视图控制器,提供覆盖整个屏幕的自定义UIView.在我使用UIScreen.main.bounds之前,在完成所有布局之前找出视图的大小(我需要它来为collectionView放置正确的itemSize).我想现在我可以做一些类似于 UIScreen.main.bounds.size.height - safeAreaInsets.bottom获得正确可用尺寸的东西.问题是,safeAreaInsets在iPhone X(模拟器)上尝试返回(0,0,0,0).有任何想法吗?在其他视图中,我得到了safeAreaInsets的正确数字.

谢谢!

iphone ios swift iphone-x

59
推荐指数
6
解决办法
3万
查看次数

如何在swift中以编程方式检查iphone 4和iphone 5的屏幕尺寸

我需要将此Objective-C替换为Swift.有没有人对如何转让有任何建议?

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
        // iPhone Classic
    }
    if(result.height == 568)
    {
        // iPhone 5
    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c swift

50
推荐指数
6
解决办法
4万
查看次数

检测iphone 5 4"屏幕

可能重复:
如何检测iPhone 5(宽屏设备)?

有没有办法可以检测当前设备是否是iphone 5?更具体地说,如果它使用新的4"屏幕?

iphone xcode objective-c ios

17
推荐指数
2
解决办法
2万
查看次数

iOS写入宏检测3.5英寸或4英寸显示屏

我正在尝试写一个宏来确定该设备是3.5英寸还是4英寸.下面有类似的东西.

    #define IOS_OLDER_THAN_6 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] < 6.0 )
    #define IOS_NEWER_OR_EQUAL_TO_6 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] >= 6.0 )
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗.请

macros objective-c ios c-preprocessor

15
推荐指数
2
解决办法
2万
查看次数

如何检测iPhone X(Ionic - cordova应用程序)

我需要对我的应用程序进行一些更改,但仅适用于iPhone X.

该应用程序是基于Apache Cordova(使用Ionic框架).

是否有用于检测iPhone X 的cordova插件?如果答案是否定的,那么知道用户是否在javascript中拥有iPhone X的最佳方法是什么?

谢谢

javascript cordova ionic-framework iphone-x

14
推荐指数
3
解决办法
9237
查看次数

iOS:检测设备是否为iPhone X系列(无框架)

在我的应用程序中,有一些无框设备的逻辑(iPhoneX,Xs Xs max,Xr).目前它基于设备的模型工作,因此,我通过DeviceKit框架检测模型.

但我想将此逻辑扩展到未来的无框设备.可能在一年内我们将有一些额外的无框设备.那么,我如何检测设备是否无框架?它应该涵盖所有当前的无框设备和未来的设备.

我们不能依赖faceID,safeAreaInset,屏幕高度或大小.那么,那又怎样?

iphone uiview ios swift ios11

10
推荐指数
4
解决办法
3793
查看次数

用宏检测iPhone X.

如何检测iPhone X上的运行?我尝试了以下代码.

#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
#define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
#define IS_IPHONE_X (IS_IPHONE && SCREEN_MAX_LENGTH == 812.0)
Run Code Online (Sandbox Code Playgroud)

当我在iOS模拟器中运行此宏时,IS_IPHONE_X则为真.这个宏是否正确?

cocoa-touch objective-c ios

6
推荐指数
1
解决办法
5492
查看次数

如何检测我的设备是否是Swift 4中的iPhoneX?

我相信有更好,更合适的方法来做到这一点.但是现在我正在使用UIScreen.main.bounds来检测我是否正在处理iPhone X(812高).这个特定的应用程序只是景观,顺便说一句.所以这就是我在这个函数中所拥有的,我正在为幻灯片视图创建幻灯片:

func setupSlideViews(slideView: [SlideView]) {
    let screenSize = UIScreen.main.bounds

    var frame: CGRect!
    if screenSize.width == 812 {
        frame = scrollView.frame
    } else {
        frame = view.frame
    }
    scrollView.frame = frame
    scrollView.contentSize = CGSize(width: frame.width * CGFloat(slideViews.count), height: frame.height)

    for (i, slideView) in slideViews.enumerated() {
        slideView.frame = CGRect(x: frame.width * CGFloat(i), y: 0, width: frame.width, height: frame.height)
        scrollView.addSubview(slideView)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是你如何检查模型?

ios swift iphone-x

6
推荐指数
1
解决办法
5536
查看次数

如何以编程方式检测iPhone XS或iPhone X?

我的一个应用程序连接到Web应用程序服务,该服务向用户提供特定于设备的新闻.为了适应最新的iPhone版本,我需要以编程方式区分iPhone XS和iPhone X.如何做到这一点?

[[UIScreen mainScreen] bounds].size总是一个很好的起点,告诉不同的设备分开.但是,iPhone XS和iPhone X具有相同的屏幕尺寸:1125 x 2436.因此[[UIScreen mainScreen] bounds].size在这种情况下使用不起作用.

还有其他方法可以检测最新的iPhone版本吗?

编辑:不是 "如何检测iPhone X"的问题的重复,因为那里讨论的所有答案/解决方案都使用屏幕尺寸来指定设备类型.如上所述,iPhone X和iPhone XS具有完全相同的尺寸,因此解决方案无法区分这两者......

iphone objective-c ios iphone-x iphone-xs

4
推荐指数
2
解决办法
1万
查看次数

如何以编程方式确定 iPhone X Simulator?

我正在尝试为 iPhone X 调整我的应用程序的大小,但遇到了问题。目前我像这样定义屏幕尺寸:

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)

#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
#define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
#define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))

#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)
Run Code Online (Sandbox Code Playgroud)

并根据电话类型进行约束。(是的,我知道不是最佳的,但它是我所做的)

当您使用 iPhone X 模拟器时,出于某种原因,它会像 iPhone 6 一样读取屏幕高度和宽度。

然后我搜索了 stack overflox 并发现了这个: 如何在 …

xcode objective-c ios iphone-x

-1
推荐指数
1
解决办法
1071
查看次数