在故事板中的视图控制器之外的UIView

KPM*_*KPM 35 xcode cocoa-touch storyboard ios

我遇到了一个问题,我无法在官方文档,Stackoverflow或Google上找到答案.

我是一位经验丰富的iOS开发人员,但却是Storyboards的新手.我想在当前的viewcontroller上实例化一个视图,一个视图,在NIB中,我会在viewController之外绘制并附加一个插座以在代码中引用它并调用类似addSubview:或类似的东西.绘制叠加层是有用的,或者在我目前的情况下,绘制一个用于MapView委托的标注视图.但我无法弄清楚如何在故事板中做到这一点.

我似乎无法在viewcontroller之外拥有一个视图,viewcontroller内的视图必须是控制器视图的子视图,或者根本不在Interface Builder中可见(当你拖动一个外部视图时,这是可以的在传统的NIB中,如果你需要调整它的最不详细的话,这是一个很大的问题).

关于做什么或在哪里看的暗示?谢谢.

KPM*_*KPM 30

看来没有办法做到这一点.尽管在不同的背景下,请参阅Jason的评论以及解决同一问题的这个问题.

然而,我在考虑我的问题的含义时早些时候意识到 - 正如我在决定值得完整答案之前在我之前的评论中开始解释的那样- 将自定义视图的设计与应用程序的设计分开是有意义的.流.因此,在Storyboard中设计自定义视图是不可能的,这很可能是......设计.

自定义视图(可重用组件)与视图控制器(表示应用程序故事板中的场景)非常不同.它与电影中的角色和场景相同.即使您恰好在一个场景中使用该角色,也不希望在场景中设计角色.如果你只在一个场景中使用它,这是偶然的,但不是必需的.所以它必须是分开的.

您希望使用Interface Builder设计自定义视图这一事实只是一个应该封装在您的类中的实现细节.应用程序故事板无需了解甚至更少管理您如何处理可重用视图的特定实现.

嗯,我希望我有更多这个品牌的审讯:)


Jos*_*lio 26

您可以使用容器视图,就像常规视图(您可以分配IBOutlet UIView),但您可以在UIViewController之外定义它.

你可以设计它