【问题标题】:How to design separate UIView outside of any ViewController in Storyboard?如何在 Storyboard 中的任何 ViewController 之外设计单独的 UIView?
【发布时间】:2012-03-10 16:31:13
【问题描述】:

我想设计一个 UIView,它比 Storyboard (iOS 5) 中的 ViewController 大。

UIView 应该用作 UIScrollView 的子视图,因此比我现有的任何 ViewController 都大。如何在 Storyboard 中创建这样的 UIView 并将其与我的 UIScrollView 关联?

如果可能,我希望不使用 xib 文件。

谢谢!

【问题讨论】:

  • 棘手的问题,在故事板时代之前这很容易。

标签: objective-c ios ios5 uiview uiscrollview


【解决方案1】:

除了使用 xibs 之外,我没有其他选择,但这并没有那么烦人:

//We have file called "View.xib" in our project. It contains one SINGLE view
NSArray *xibContents = [[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil];
UIView *view = [xibContents lastObject]; //safer than objectAtIndex:0

[self.scrollview addSubview:view];
self.scrollview.contentSize = view.frame.size; 

为了建立 IB 连接,您可以将 xib 中的 filesOwner 类设置为您的 viewController,然后像往常一样连接。

【讨论】:

  • 您可能想看看我的相关问题/答案,关于可能证明这一点的设计决策:stackoverflow.com/questions/11386111/…
  • 干净且超快速的解决方案。非常感谢。
  • 添加了独立的 .xib 文件,不适用于自动布局。虽然整个项目都是自动布局。我如何使用这个 .xib 文件应用自动布局?
【解决方案2】:

您可以将UIView 放入您的滚动视图中,并直接将其设计在您的scrollViewviewController

【讨论】:

  • 嗨 Ugur,我的 UIView 比 ScrollView 大,所以大部分控件都在当前可见区域之外。
  • 比 xibs 可能是在界面构建器中设计它的唯一解决方案
【解决方案3】:

我找到了编辑添加到场景中的视图的方法(与 ViewController 处于同一层次结构级别)。

不幸的是,它来自hackish 类型的操作。 我的Xcode 版本是Version 4.5.2 (4G2008a)。我已经在真实项目和新的空项目中对此进行了测试。

基本思想是Xcode 确实有能力编辑这样的外部视图,不幸的是这种模式不能直接激活。

在我发现的方法中,您需要在外部视图中有 2 个层次结构:

场景 |- 风险投资 |- 查看 |- 外部视图 |- 子视图1 |- 子视图2
  • 然后转到Document Outline面板
  • 在场景树中找到 SubView2
  • 双击它

编辑区会出现,其坐标会保存到项目的用户数据中,如果你愿意,可以移动到更合适的地方,下次你在机器上打开IB中的storyboard那里。虽然我认为在其他机器上你必须再做一次(我没有测试过)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-09
    • 2014-11-26
    • 2014-02-03
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多