Iphone XCode 4界面生成器:处理大量重叠视图的更好方法

Iphone XCode 4界面生成器:处理大量重叠视图的更好方法,iphone,ios,uiview,xcode4,interface-builder,Iphone,Ios,Uiview,Xcode4,Interface Builder,在IB中,我有很多视图。其中许多在应用程序加载时隐藏,但在稍后按下按钮时显示。这一切都很好,但在IB中构建此布局时,布局任何内容都非常困难,因为有太多重叠视图,其中一些视图部分透明(设置为隐藏),另一些视图完全重叠并覆盖其他视图。这使得布局非常困难 当布置这样的视图时,最好的方法是什么?有没有其他方法可以打破僵局?或者更好的是,我可以完全隐藏视图(如photoshop)以便编辑下面的视图,然后再打开该层吗?我不知道如何在画布中隐藏对象,但复杂布局的一个有用技巧是双击左边文档树中的一个项目-这会选

在IB中,我有很多视图。其中许多在应用程序加载时隐藏,但在稍后按下按钮时显示。这一切都很好,但在IB中构建此布局时,布局任何内容都非常困难,因为有太多重叠视图,其中一些视图部分透明(设置为隐藏),另一些视图完全重叠并覆盖其他视图。这使得布局非常困难


当布置这样的视图时,最好的方法是什么?有没有其他方法可以打破僵局?或者更好的是,我可以完全隐藏视图(如photoshop)以便编辑下面的视图,然后再打开该层吗?

我不知道如何在画布中隐藏对象,但复杂布局的一个有用技巧是双击左边文档树中的一个项目-这会选择该项目并将焦点放在画布上,您可以使用光标键来轻推它


这并不能解决看不见东西的问题,因为例如,有五个或六个标签占据相同的空间,但如果是这种情况,最好使用一个标签并在代码中更改其内容

尝试选择被其他视图遮挡的视图时的另一个选项是快捷方式:

'ctrl'+'shift'并单击


它显示光标下所有视图的列表。

我为我正在构建的一个应用程序遇到了这个问题,该应用程序有一个带有可点击热点的公园的arial视图图像。单击热点时,将显示一个弹出视图,其中包含关于公园中该热点的信息。我在三个公园使用相同的VC/XIB。这使得XIB非常繁忙,很难处理(即与您的问题相同)细节视图使得很难处理下面的视图。我的解决方法是选择隐藏我想要处理的XIB部分的每个详细UIView,并在size inspector中将1000添加到UIView origin.x。这将这些UIView移到了足够远的地方,让我可以用XIB做我需要做的事情。然后,当我完成后,我将它们移回x 1000。(我只是需要将它们水平移动,以完成我需要的工作)


我知道它很笨重,但考虑到XCode没有一种方便的方法来隐藏XIB的一部分,这是我能想到的最快的方法

处理IB中重叠项的一种方法是:

  • 确保要隐藏的项目组已分组到视图中

  • 给出这些视图的名称:例如ViewOptionA、ViewOptionB和ViewOptionC。
    可以通过在选择视图时单击树中的视图名称,然后键入新名称来完成此操作

  • 当您要隐藏其中一组项目时:
    a) 通过以下任一方式选择视图:
    i) 在左侧的树中单击它或
    ii)在布局编辑器中按Ctrl-Shift键,然后从列表中选择视图

    b) 在属性检查器中,将Alpha设置为0

  • 当您要取消隐藏其中一组项目时:
    对于2),但将Alpha设置回1

  • [您需要记住在发布之前取消隐藏所有视图!

    如果你像我一样健忘,那么也许你可以将UIView子类化并将Alpha设置为1。我还没有尝试过这种子类化的想法。]

    是的,我经常做的就是双击它们以使它们聚焦。我只是希望有更多的控制,但话说回来,也许我太习惯于页面布局程序和Photoshop了。有一个项目并更改内容是一个很好的建议,但我发现当涉及到按钮时,这也会变得混乱。然后你必须改变标题和动作。从代码的角度来看,有两个不同的按钮似乎更简洁,但在IB中的视觉效果更好。@morningstar:完全同意。你只要选个地方收拾你的烂摊子就行了@jrturton我非常同意你的观点,在UILabel上使用是个好主意,但这并不总是很好地工作,这取决于应用程序的工作方式。我不确定这是否会被视为有用或轻率,但根据我的经验,这一特定场景几乎总是突出一个总体设计问题,直到我在构建和维护它时遇到问题,我才意识到这一点。重新设想一个更简单的视图结构,不仅从工程的角度来看更容易维护,而且通常会带来更好的用户体验。只是战壕里的一个想法。对一个发人深省的问题投赞成票。:-)相信我,布局和设计都非常简单。这只是IB处理视图的方式,它可以完全覆盖其他视图,这使得布局困难。我没有数百个视图或任何视图,但即使有3个视图重叠,这也是一个难题。答案不清楚,但您可以
    shift+单击左侧视图树中的多个视图,然后从尺寸检查器一次完成所有操作