相关疑难解决方法(0)

检测设备是否为iPhone X.

我的iOS应用程序使用自定义高度UINavigationBar导致新iPhone X上出现一些问题.

如果应用程序在iPhone X上运行,是否有人已经知道如何以编程方式(在Objective-C中)进行可靠检测?

编辑:

当然,检查屏幕的大小是可能的,但是,我想知道是否有一些"内置"方法,如TARGET_OS_IPHONE检测iOS ...

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;
    if (screenSize.height == 812)
        NSLog(@"iPhone X");
}
Run Code Online (Sandbox Code Playgroud)

编辑2:

我不认为,我的问题是链接问题的重复.当然,有一些方法可以"测量"当前设备的不同属性,并使用结果来决定使用哪个设备.然而,这不是我的问题的实际问题,因为我在第一次编辑时试图强调.

实际的问题是:"是否可以直接检测当前设备是否是iPhone X(例如,通过某些SDK功能)或者我是否必须使用间接测量"

到目前为止给出的答案,我认为答案是"不,没有直接的方法.测量是要走的路".

iphone objective-c ios iphone-x

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

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

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

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

iphone objective-c ipad ios

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

在iOS8中使用UISplitViewController隐藏主视图控制器

我有一个iOS7应用程序,它基于Xcode主 - 详细信息模板,我移植到iOS8.一个变化很大的领域是UISplitViewController.

在纵向模式下,如果用户点击详细视图控制器,则主视图控制器将被关闭:

在此输入图像描述

如果用户点击一行,我还希望能够以编程方式隐藏主视图控制器.

在iOS 7中,主视图控制器显示为弹出窗口,可以隐藏如下:

[self.masterPopoverController dismissPopoverAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

使用iOS 8,主服务器不再是popover,因此上述技术不起作用.

我试图解雇主视图控制器:

self.dismissViewControllerAnimated(true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

或者告诉拆分视图控制器显示详细信息视图控制器:

self.splitViewController?.showDetailViewController(bookViewController!, sender: self)
Run Code Online (Sandbox Code Playgroud)

但到目前为止还没有任何工作.有任何想法吗?

objective-c uisplitviewcontroller swift ios8

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

什么是iPhone 5/5c/5s/iPod touch 5的设备代码(平台字符串)?

例如,iPhone 5的"iPhone5,1"或"iPhone5,2"是什么?有什么区别?

如果有人有iPhone 5,请运行以下代码并显示结果.谢谢.

相关链接:https://stackoverflow.com/a/3950748/482899

iphone ios iphone-5

22
推荐指数
3
解决办法
5万
查看次数

如何在iOS 8中正确确定今日扩展左边距?

我试图找出如何计算今日扩展主视图中的左边距,以将内容与今日视图标签的其余部分对齐.

这是一个使用Today扩展的干净Xcode项目的示例(我已经为视图背景添加了颜色并绘制了一条红色虚线,以说明我想要对齐Hello World的位置UILabel).

iPhone 6 Plus模拟器(左侧横向,右侧纵向)的结果可以从下图中找到:

在此输入图像描述

在图像中,请注意绿色主视图左边界的位置与应用程序名称UILabel"testi2"的位置不同.看起来红线 - 主视图左边界对齐在每个设备中都有所不同:iPhone 5x,iPhone 6和iPad.

可以使用干净的Xcode项目(我正在使用Xcode 6.1.1,iOS 8.1和Swift)重现该行为:

  1. 创建一个空的Xcode项目(单视图应用程序)
  2. 添加新目标:扩展程序>今天扩展程序
  3. 从Today扩展组中,找到MainInterface.storyboard并使主视图背景为绿色,Hello世界UILabel背景为红色: 在此输入图像描述

如何将Hello World UILabel(红色背景)与虚线对齐?或者如何将主视图(绿色背景)与虚线对齐?

iphone ipad ios ios8 today-extension

19
推荐指数
2
解决办法
3578
查看次数

如何使用不同的Apple产品屏幕使文本标签缩放字体大小?

这对于ios dev来说很快.我有一个非常简单的布局:

link1(没有足够的代表实际发布图片)

我所要做的就是确保"结果"标签按比例缩放到每个不同屏幕尺寸的大致相同的比例.正如您在下面看到的,3.5屏幕和iPad屏幕之间的差异非常明显:

LINK2

所以我想让iPad屏幕上的标签大到足以占用与3.5屏幕相同的空间百分比,包括垂直和水平.我该怎么做呢?我已经完成了其他几个教程/解决方案,但它们都教你不同的东西,比如如何更改标签大小,而不是字体大小.我尝试添加宽高比约束,但只在不改变字体大小的情况下移动它.添加高度/宽度约束也只会更改标签大小而不使用字体大小.

fonts label ipad ios swift

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