首页 > 解决方案 > 有没有办法准确检测用户在 Xcode 上使用的设备类型

问题描述

我正在制作一种类似于 dividr 的事实,因为您必须躲避坠落的物体,并且它在 iPhone XR 上完美运行,但是当我为 SE 和 iphone 7 以及其他手机运行模拟器时,我在代码中的计算是搞砸了,有没有办法准确地检测到他们使用的是什么类型的设备?或者也许是一种更好的方法来使它普遍化?

我知道你可以这样做

if UIDevice.current.userInterfaceIdiom == .phone
if UIDevice.current.userInterfaceIdiom == .pad

但恐怕这对我来说不够具体

标签: iosswiftxcode

解决方案


我认为实现你想要做的最好的方法是使用约束。您应该设置适当的约束,以便您的应用可以在任何设备上加载和播放,而不是检测用户正在使用什么设备。 https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html 这是一个关于基础的类似内容。

最好的做法是让应用程序在许多设备上都可以查看,而实现这一点的最佳方法是使用约束。Xcode 具有“因特征而异”,它允许您根据屏幕宽度和高度更改约束!https://www.idev101.com/code/User_Interface/sizes.html 上面的这个链接给出了一个关于各种屏幕宽度和高度的很好的例子(不包括 ipad)

Xcode 8 中的“Vary for Traits”是什么?

这是一个关于特征变化的链接我希望这会有所帮助


推荐阅读