【问题标题】:Is there a way to detect exactly what kind of device the user is on Xcode [duplicate]有没有办法准确检测用户在 Xcode 上使用的设备类型 [重复]
【发布时间】:2019-06-11 21:03:15
【问题描述】:

我正在做一种类似于 dividr 的事情,因为你有坠落的物体,你必须躲避它,它在 iPhone XR 上完美运行,但是当我为 SE 和 iphone 7 和其他设备运行模拟器时,我将我的计算调用到我的代码搞砸了,有没有办法准确检测他们使用的是什么类型的设备?或者也许是一种更好的方法来实现它的通用性?

我知道你可以这样做

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

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

【问题讨论】:

  • 如果您认为需要检测特定设备,那么您可能做错了什么。
  • 完全同意 rmaddy - 您不想尝试检测所有可能的设备并以不同方式处理它,想象一下将其移植到 Android!如果您不能使用自动布局并且需要执行自己的计算,也许您只需要通过 UIScreen.main.bounds.size 或包含坠落对象的视图的 bounds.size 来调整屏幕大小?跨度>
  • 我将我的应用程序专门用于 iPhone XR,这从根本上是错误的,我已经让它更通用了,谢谢!
  • 您应该更改您的问题,使其不再被标记为重复

标签: ios swift xcode


【解决方案1】:

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

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

What is 'Vary for Traits' in Xcode 8?

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

【讨论】:

  • 我会看看,我是 IOS 开发的新手,我不知道这是可能的,我认为限制仅适用于故事板。感谢您的帮助,我很感激。
  • 没问题!不要忘记接受答案或关闭问题,因为它是重复的,或者更改您的问题以使其不重复
  • 嗨,原来我在声明中过于具体了,我已经把它变得更笼统了,现在我们很高兴谢谢你!
猜你喜欢
  • 2017-08-24
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
  • 2012-08-29
  • 1970-01-01
相关资源
最近更新 更多