【问题标题】:Why Won't Some Code Work in Different Size Storyboards in Xcode?为什么有些代码不能在 Xcode 的不同大小的 Storyboard 中工作?
【发布时间】:2014-12-07 18:43:16
【问题描述】:

我是一名低中级 Xcode 程序员。如果我有什么不清楚的地方,请多多包涵,并通过反馈帮助我改进。我收到的任何反馈,我都会用来改进这个问题。

我正在使用 Xcode 6

我目前正在制作一款 Iphone 游戏。我将其设置为单视图应用程序。我的问题是让它在不同尺寸的 iPhone 上工作。起初,我不知道如何让 Xcode 根据正在播放的 Iphone 来选择屏幕,但我设法让它工作。我的游戏没有使用自动布局,它使用不同的故事板,其中视图控制器根据故事板而有所不同。例如:MainIphone6.Storyboard 将具有 Iphone 6 视图控制器。

我的游戏包括点击图像视图(它们确实有点击手势识别器),在它们被点击后,图像视图将在屏幕上选择一个随机点并移动到它。这个点有我设置的边界,所以它不会去我不想去的地方。

我让它运行的第一个屏幕是 Iphone 5。它运行良好。我让它工作的第二个屏幕是 Iphone 4,随机位置的边界有点偏离它最初是为 iPhone 5 编程的事实,但我知道如何解决这个问题,这不是问题。

问题在于,在我的 Iphone 6 和 6 Plus 故事板中,当点击图像视图时,它不会移动到随机点。这适用于 Iphone 5 和 4,但不适用于 6 和 6 plus。

为什么我的代码不适用于这个 Storyboard,但它可以在其他 Storyboard 上运行,而所有代码都一样?

注意:我推测它可能与故事板中视图控制器的链接有关,因为在 iPhone 5 和 4 上我可以链接模态 segue,但在 6 和 6 plus 中,它说它已被弃用。我只在可能有帮助的情况下提及这一点......

【问题讨论】:

  • 如果您使用自动布局,让应用程序适用于所有屏幕尺寸会更容易。这是一个强大的系统,需要一些时间来学习,但需要付出努力。话虽如此,当您在 iPhone 6 模拟器中点击图像时会发生什么?什么都没有?
  • 当我点击它时,它不会注册我的点击。它应该将图像视图移动到随机位置。有什么建议么?你介意向我展示一个很好的教程吗?另外,自动布局是否适用于这种游戏?任何类型的应用程序? @rdelmar
  • 没有看到任何代码或不知道您在界面生成器中做了什么,我无法回答您的问题。如果它没有响应点击,您可能还没有添加手势识别器,或者将图像视图的 userInteractionEnabled 设置为 YES。是的,自动布局适用于此类游戏或几乎任何应用程序。
  • 感谢您的反馈。事实证明,我在创建故事板时犯了一个错误。我相信我没有正确添加手势识别器。 @rdelmar

标签: ios objective-c iphone xcode viewcontroller


【解决方案1】:

仅从您的描述很难判断。不推荐使用的代码仍然可以工作,所以我怀疑是这样。您是否尝试更改您的代码,以便 6 和 6 plus 使用有效的 5 Storyboard。如果确实如此,则 6 故事板有问题。在这种情况下,杀死 6 个 Storyboard,复制 5 个 Storyboard 并对其进行修改。听起来您可能一直在重新创建每个故事板。在这种情况下,我在 Navigator 中选择 Storyboard 并从 File 菜单中选择 Duplicate。这将为您节省一些工作,并有助于确保您在重新创建情节提要的所有方面时不会出错。

此外,即使您不想使用 Autolayout,我仍然会使用单个 Storyboard 并在代码中进行计算。

【讨论】:

  • 感谢您的回答。你指的是哪个故事板,3.5,4.0,4.7,5.5,还是像正方形的可调整大小的故事板?感谢您的反馈和建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-17
  • 2017-01-30
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多