在故事板以编程方式使用创建一个独立的视图(Create a standalone view in s

2019-08-05 11:22发布

我试图创建和设计一个UIView使用情节串连图板,但其包含在UIActionSheet编程。 这基本上是避免使用CoreGraphics中定位功能与像素

在旧的Xcode我记得那是可以拖动一个UIView到笔尖无需任何控制器。

视图显然必须连接到类,所以它有一个IBOutlet,但不能被添加到self.view

有一件事,让我觉得这应该是可能的是,如果你在故事板拖动一个UIView到控制器黑条它会弹出到位,像这样:

但它不是屏幕本身上显示。 这是什么功能呢? 我能以某种方式打开了这个观点,并设计了一点?

Answer 1:

只要创建一个新的.xib文件。

  1. 在导航区域中右键点击的地方,并选择“新建文件...”。
  2. 从右侧和选择“查看”列表中选择“用户界面”。
  3. 点击“下一步”,“下一步”,给你的新视图的名称,和“创建”。
  4. 一个新的.xib填充将被添加到您的项目。
  5. 在新的.xib文件,双击它在Interface Builder(不是故事板)打开。
  6. 编辑/设计您查看自己的喜好。

然后,你必须在Interface Builder中新视图(的.xib)之后,它创建的UIView( 前。MyView的 )的一个新的子类,开关类新视图(的.xib)到MyView的的一个简单的问题,创建的实例MyView的在你的控制器,并添加它作为一个子视图到其他视图。


*并为您解答在底部那个小小的黑条的问题,这就是所谓的“码头”,这是你的场景的顶层文件只是一个小型的表示。 该码头是方便快速拖动/下降到图标和建立连接。 看到苹果的情节串连图板说明这里 。 雷Wenderlich具有易于遵循故事板教程这里 。



Answer 2:

你不能有一个UIView一个外部UIViewController在故事板。 我猜这是因为故事板根本不知道如何识别或与目前的API实例。 这是值得我已经为自己的用途。 该解决方案是只使用一个XIB的一个UIView和程序加载它(就像用来做)。 我一直在使用的大多数项目和夫妇XIBs故事板跨多个视图控制器可重复使用的意见都很好地协同工作中。

下面是一些代码中使用了带有对象被初始化加载厦门国际银行作为自定义对象的一部分。

- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        [[[NSBundle mainBundle] loadNibNamed:@"BannerView" owner:self options:nil] objectAtIndex:0];
        [self addSubview:self.view];
        self.frame = self.view.frame;
    }
    return self;
}

至于拖意见下到上的故事板的黑条。 这些观点仍然是一部分UIViewController ,但它们不是顶层视图的`子视图”。 我认为该文件概述显示了该层次结构很好。

以下观点具有2.1.1查看,2.1.2查看,等我的主视图层次结构之外,因为他们不是我的主视图的子视图。 其结果是,他们不会被默认显示。 我有IBOutlets设置和我有条件地添加/使用标准的从我的主视图层次结构中删除他们addSubview:removeFromSuperview



文章来源: Create a standalone view in storyboard to use programmatically