[重构] Storyboard 在场景底座添加View

142 阅读1分钟

背景

有个老哥说,他使用storyboard创建视图,然后搞了很多状态堆叠在一起,需要的就显示,不需要的就隐藏。后面变得难以维护,牵一发动全身。

答案

我给的建议是对每个状态,创建不同的xib,以后只需要隐藏、显示这些xib

然后有一位老哥给了一个我没有见过的方法,对就是Scene Dock,官方文档翻译为场景底座。上图

这里有解释,大意就是说,放在控制器外面的视图,主要用于弹窗之类的,和控制器一起实例化,如果要使用,和其他视图一样引用连线就可以了。

#import "ViewController.h"

@interface ViewController ()

@property (strong, nonatomic) IBOutlet UIView *CSView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self.view addSubview:self.CSView];
}

@end

不需要指定宽高,直接就有

使用方法也很简单,把需要的视图直接拖到上图红色区域,注意不要拖到控制器里面去了。