【问题标题】:UITabBar in Interface Builder - too messy?Interface Builder 中的 UITabBar - 太乱了?
【发布时间】:2009-07-13 04:32:02
【问题描述】:

我有一个视图控制器,我想在它上面托管一个 UITabBar。当用户点击不同的标签项时,我想显示不同的视图。我有这个工作,但很难维护。

在 InterfaceBuilder 中,我只是创建了所有选项卡视图,将它们隐藏起来。在我的项目中,当用户单击其中一个选项卡项时,我只需将链接视图的隐藏属性设置为 false 即可显示。

不过,xib 看起来像是一场灾难,因为我有大约 4 个视图层叠在一起。为了使事情更容易,我在视图的 InterfaceBuilder 中将 hidden 属性设置为 true,希望它会完全隐藏一些,以便更容易看到我在做什么。 InterfaceBuilder 只是简单地将视图的不透明度更改为 30%,因此您仍然可以看到它们都层叠在一起。

我想知道是否有更好的方法来做到这一点。如果可能,我不想以编程方式为此 UI 生成所有视图。

谢谢

【问题讨论】:

    标签: objective-c interface-builder uitabbar


    【解决方案1】:

    UITabBar 确实应该是您界面的“根”容器,然后它应该包含导航控制器和/或视图。

    我发现当 UI 本身在 Interface Builder 中变得难以处理时,最好的办法是切换到 Nib 窗口中的大纲视图(使用“视图模式”工具栏项),并访问Nib 窗口的层次结构。

    【讨论】:

    • +1 大纲视图是最接近 IB 处理复杂性扩展的方法。作为替代方案,如果您碰巧有一个极其复杂的 UI,其中包含大量丰富的 动态 内容,我建议考虑 Three20 的 TTStyledText 和 TTStyleSheet 机制。
    【解决方案2】:

    我通常不喜欢在 nib 文件中创建各种隐藏视图,这正是因为事情变得如此凌乱,而且不经意地点击和拖动你不想要的东西变得多么容易。

    在这种情况下,我要做的是将隐藏的视图分解为单独的 nib,并根据需要加载控制器并将它们放入视图中。这种方法的另一个优点是它仅在需要时加载视图 - 使视图整体更轻量级。

    【讨论】:

      【解决方案3】:

      我有同样的问题,但我没有使用隐藏复选框,而是使用尺寸检查器查看我想要“隐藏”的控件,然后在 X 值之前放置一个 99。这会将其移出屏幕,并且通过移除 99 很容易将其移回原始位置。不是很理想,但它确实有效...只要记住在完成后将它们移回即可。

      【讨论】:

        猜你喜欢
        • 2019-06-16
        • 1970-01-01
        • 1970-01-01
        • 2021-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-07
        相关资源
        最近更新 更多