应该通过storyboard / xib添加可选视图然后隐藏还是以编程方式添加? (良好做法)

时间:2015-02-23 20:34:55

标签: ios xcode storyboard xib

我正在开始一个新项目,我对故事板的良好做法有一些疑问,特别是关于可选的隐藏视图(仅在某些情况下显示)。

假设您有一个pdf下载程序应用程序,当用户选择下载按钮时,会出现UIProgress栏并显示下载进度。当用户按下载按钮时,此进度条是否应包含在故事板中或以编程方式生成?

这是一个简单的例子,但是如果不是只有UIProgressBar而且还有多个隐藏(可选)按钮呢?如果某些按钮重叠怎么办? (我知道重叠按钮设计不好,但仅仅是为了举例说明)

是否应隐藏或以编程方式添加?性能怎么样?有人说解析Storyboard / Xib比编程构建视图需要更多时间。

2 个答案:

答案 0 :(得分:4)

在DonaldKnuth的论文“使用GoTo语句进行结构化编程”中,他写道:“程序员浪费了大量时间思考或担心程序中非关键部分的速度,而这些效率尝试实际上具有强烈的负面影响考虑调试和维护时的影响。我们应该忘记效率很低,大约97%的时间说:过早优化是所有邪恶的根源。但我们不应该放弃我们在这个关键时刻的机会3%“。


所以,你正试图解决一个性能问题你真的没有(目前)。 您决定永久或临时拥有视图应该基于视图使用的上下文,而不是xib / stb与编程方法之间的某些传闻性能问题,类似于平台战争,但是否则,鉴于LLVM编译器今天如何工作,以及iPhone 4或更高版本的硬件性能基本上是无稽之谈。

这是一个简单的规则。拥有IB中的所有视图,根据需要隐藏或取消隐藏它们,并以编程方式添加/删除视图仅当您能说明理由时才会这样做。

我理解你本能的渴望使它成为正确的,所以不要试图在一个控制器中管理一个百万个视图,而是看看讽刺性地称为大规模视图控制器的问题。

正确分解为自定义视图,关注点分离,明确定义的职责分为更多视图控制器,查看控制器控制,是解决您的问题的答案。< / p>

您希望您的应用首先正确正确。您可以通过声音架构来实现这一目标,以便您能够保持控制。用户不会意识到你以编程方式实例化某个按钮,因为他们不会在意。但是,如果应用程序具有不一致的状态,因为您的视图控制器有7000行并且是意大利面条地狱或正在崩溃,这是一个问题。

答案 1 :(得分:0)

如果您打算使用故事板;建议包括视图/按钮等。你可以随时隐藏/取消隐藏相同的代码。 有一个思考过程,而不是集中你的观点。拥有多个视图,让您的应用看起来整洁