IBDesignable UIViewController

Jef*_*mes 12 interface-builder uiviewcontroller xcode6 swift-playground ibdesignable

我希望能够在代码中布局我的视图控制器,但是看到界面构建器中显示的布局.

我知道我可以创建一个UIView子类,使其成为IBDesignable,并将其分配给视图控制器的视图,但这需要我创建此UIView子类的所有其他子视图属性,而不是视图控制器的属性.

真正的愿望是能够在代码中布局我的视图控制器,但在不重建项目的情况下快速查看任何更改.如果这可以通过游乐场来实现,那么描述如何做到这一点的答案也将受到赞赏.

谢谢你的任何建议.

Jef*_*mes 1

我找到了一种使用 IBDesignable 测试视图控制器布局的解决方法。

1.像平常一样在代码中布局视图控制器

2.创建一个IBDesignable UIView子类并将视图控制器的视图添加为子视图。

3.创建一个xib并将其视图的类设置为您在步骤2中创建的子类

为了详细说明步骤 2,您的 IBDesignable 的 initWithFrame: 方法可能如下所示

{
    self = [super initWithFrame:frame];
    MyViewController *viewController = [MyViewController alloc] init];
    viewController.view.frame = self.bounds;
    [self addSubview:viewController.view];
    return self;
}
Run Code Online (Sandbox Code Playgroud)

因此,除了这个 initWithFrame 方法之外,所有布局代码都可以由视图控制器处理。您可能希望在子视图的prepareForInterfaceBuilder方法中将数据传递到视图控制器。