如何在 xib 文件 iOS 中订购多个视图

Posted

技术标签:

【中文标题】如何在 xib 文件 iOS 中订购多个视图【英文标题】:How to order more than one view in xib file iOS 【发布时间】:2014-05-04 18:04:14 【问题描述】:

在我的 nib 文件中有三个视图,我不会同时显示所有视图。

请看这张图片:

当然实际情况比这张图复杂,因为我在每个视图中都有其他子视图(按钮、标签...)。

实际上维护这个文件非常困难,因为所有视图都相互覆盖!

有什么建议吗?

谢谢

【问题讨论】:

有什么问题?在陷入这种情况之前,您最初想做什么? 你总是一次只显示其中一个吗?你有时会展示其中的两个,有时会展示三个吗?建议的解决方案取决于您是否知道自己在做什么。 @matt ,是的,没错,有时我会展示其中两个,有时会展示其中一个。 例如,如果我想在其中一个视图中更改其中一个子视图的位置,我是否应该移动很多其他子视图.. 也很难看到所有这些视图都覆盖了另一个 【参考方案1】:

您的问题不清楚,但我假设您的意思是在 在 nib 文件中设计视图时遇到问题

如果是这样,我有两个可能的建议。

在您的屏幕截图中,所有三个视图都列在左侧(视图、视图、视图)。当您想要处理其中一个时,将其“视图”列表拖到列表底部。这会将有问题的视图放在前面,以便您可以处理它及其子视图。

这就是我要做的:将每个视图保留在自己的 nib 中!这样你就可以在没有其他人的情况下设计它。当应用启动时,使用代码依次加载所有三个 nib,将每个视图拉出并将其粘贴到您的真实界面中。

【讨论】:

以下是我关于如何制作仅包含 UIView(及其子视图)的 nib 以及如何在代码中加载并将其粘贴到界面中的说明:apeth.com/iosBook/ch07.html#_outlet_connections【参考方案2】:

好吧,在这种情况下,我会这样做。

我的假设是所有三个视图的大小都是 320 x 480(考虑 iPhone 4)

假设您有以下三个视图。

    查看 1 >> view001 查看 1 >> view001 查看 1 >> view001

我要做的是添加一个滚动视图mainScrollView

现在假设您只想显示view001

- (void) showView001Only 
    view001.hidden = NO;
    view002.hidden = YES;
    view003.hidden = YES;
    mainScrollView.hidden = YES;

现在假设您想将两个视图显示为view002view003。在这种情况下,我会在滚动视图中添加两个视图并在彼此下方添加一个。

- (void) showView0023Only 
    view001.hidden = YES;
    view002.hidden = NO;
    view003.hidden = NO;
    mainScrollView.hidden = NO;
    [mainScrollView addSubview:view002];
    view002.frame = CGRectMake(0,0,320,480);
    [mainScrollView addSubview:view003];
    view003.frame = CGRectMake(0,480,320,480);
    // now set mainscrollview content size to 320x960
    [mainScrollView setContentSize: CGSize(320, 960)];

我希望这就是你要找的。​​p>

如果您想在同一屏幕上显示两个视图而不滚动,那么我想说这完全取决于您在 view1 和 view2 中的内容。

【讨论】:

感谢您的回复,但实际上这不是我的问题我可以隐藏和显示它们,我的问题是很难在 xib 界面中看到它们并调整它们......你有吗任何其他建议!谢谢 @user3516596 :你能解释一下你到底想做什么吗?也许我们可以通过这种方式为您提供帮助...编辑问题并添加您真正想做的事情...仅举个例子对我们来说并不清楚... 如何用一个控制器来区分三个 nib 文件中的三个视图!!

以上是关于如何在 xib 文件 iOS 中订购多个视图的主要内容,如果未能解决你的问题,请参考以下文章

如何通过编码管理 .storyboard 或 .xib 文件中的多个视图。?

如何使用来自 xib 文件的任何子视图(在 xib 中创建)的多个副本

如何在iOS的静态库中添加xib文件

用于多个 xib ios 的一个 .h 和 .m 文件

如何在多个 .xib 文件之间执行展开转场(不使用情节提要)

如何在 Tab bar 控制器中使用一个 Xib 并创建多个视图控制器? [目标-C]