我正在对现有的iPad应用程序进行修改,并且很难处理情节提要中真正混乱的场景。该应用程序中的几乎每个场景都由多个视图组成,一个视图彼此叠放,每个视图包含一组不同的控件。根据情况或进入场景的数据,一些视图被隐藏,而另一些视图被显示。
破译这些场景需要花费很多时间,即使我知道要进行哪些更改,也很难做出这些更改,并且很容易搞砸其他事情。
作为一个例子,以下场景根据情况可能会出现3个视图(“开始视图”,“结束视图”,“抽屉历史记录”),并且它们都彼此重叠放置...
这种似乎似乎是处理此问题的一种糟糕方法,我很难相信这是标准做法,但是我在替代方法中找不到很多东西。在人们处理这个问题的方式上,我发现很少。关于如何设计用户界面的教程似乎太简单了,从来没有处理过复杂的场景来解决这个问题。
不幸的是,这个应用程序是我在iOS中做用户界面的主要介绍,因此它显然已经成为我的默认解决方案。我已经尝试了许多教程,但是它们花了很长时间,而且似乎从未遇到过需要这种技术来解决它的情况。
我希望有一个解决方案,可以将场景中的每个备用视图单独放置,并根据需要显示在占位符视图中。
什么是更开明/更易管理的方法?
答案 0 :(得分:0)
这就是使用Storyboards / Nibs / Xibs所能获得的。我并不是说对UI进行编码比使用界面生成器要好,但至少对我而言是如此。我相信,据我所知,没有其他方法可以在界面生成器中的一个视图控制器中处理如此多的视图层。实际上,我以前曾经使用过界面生成器,这也是我添加多层控件的方式。有时最初会隐藏一些视图,但是这可能会使我或其他开发人员在查看布局时感到困惑。有时,我会扩展viewcontroller的高度,以了解到有一个视图容器,该容器的约束为1000常数或负1000常数,以使其隐藏并准备在需要显示时进行动画处理。
有一些方法可以改善和组织故事板。您可以将模块分为不同的情节提要文件。您可以使用参考;避免吵架;还有什么。仍然是个人或团队的偏好。
一些参考:
https://cocoacasts.com/organizing-storyboards-with-storyboard-references
https://medium.com/@stasost/xcode-a-better-way-to-deal-with-storyboards-8b6a8b504c06
编辑:
我想您也可以将单独的视图容器布置到单独的xib中,然后调用它们或在需要时对其进行布置。但这会为您的项目添加更多文件。