【问题标题】:How to handle alternate views within a scene如何处理场景中的备用视图
【发布时间】:2018-12-20 03:44:27
【问题描述】:

我正在对现有的 iPad 应用程序进行修改,并且很难处理情节提要中非常混乱的场景。几乎应用程序中的每个场景都由多个视图组成,每个视图都包含一个不同的控件集。根据进入场景的情况或数据,一些视图被隐藏,而另一些则被显示。

破译这样的场景需要很多时间,即使我弄清楚我需要做出哪些改变,也很难做出这些改变,而且很容易搞砸其他事情。

例如,以下场景有 3 个可能出现的视图(开始视图、结束视图、抽屉历史记录),视情况而定,并且它们都相互重叠排列...

似乎是一种糟糕的处理方式,我很难相信这是标准做法,但我没有找到太多替代方法。我发现人们处理这个问题的问题很少,关于如何设计用户界面的教程似乎太简单了,从不处理复杂到足以遇到这个问题的场景。

不幸的是,这个应用程序是我在 iOS 中做用户界面的主要介绍,所以它显然已成为我脑海中的默认解决方案。我尝试了许多教程,但它们需要很长时间,而且似乎从未达到需要这种技术来解决它的情况。

我希望有一个解决方案,场景中的每个备用视图都可以单独布局,并根据需要显示在占位符视图中。

什么是更开明/更易于管理的方法?

【问题讨论】:

  • 自从询问以来,我发现了 2 个可能的改进......“辅助视图”和“嵌入式视图控制器”,可能适用于不同的情况......如果我能够跟进让这些技术对我有用。

标签: ios xcode storyboard


【解决方案1】:

这就是 Storyboards/Nibs/Xibs 的功能。我并不是说编写 UI 比使用界面生成器更好,但至少对我来说是这样。我相信,据我所知,没有其他方法可以在界面构建器的一个视图控制器中处理如此多层的视图。实际上我以前使用过界面生成器,这也是我添加多层控件的方式。有时某些视图最初是隐藏的,但这可能会使我或其他查看布局的开发人员感到困惑。有时我扩展 viewcontroller 的高度以知道有一个视图容器具有一个千位常量或负千位常量的约束,以使其隐藏并准备好在需要显示时进行动画处理。

有一些方法可以改进和组织您的故事板。您可以将模块分成不同的故事板文件;你可以使用参考;避免转场;等等。这仍然是个人或团队的偏好。

一些参考:

https://cocoacasts.com/organizing-storyboards-with-storyboard-references

https://medium.com/@stasost/xcode-a-better-way-to-deal-with-storyboards-8b6a8b504c06

编辑:

我认为您也可以将单独的视图容器布局到单独的 xib 中,然后在需要时调用它们或对其进行布局。但这会给您的项目添加更多文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-16
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2014-05-07
    • 1970-01-01
    相关资源
    最近更新 更多