我有一个带背景图和标题头的视图控制器。这个视图大部分时间都保持不变。我有不同的子视图,我将在这个视图控制器中显示和隐藏它们。
如何使用故事板实现呢?
谢谢。
如何使用故事板实现呢?
- 我是否需要为每个子视图创建单独的xib文件?
- 或者我可以在同一个视图控制器内创建单独的视图,并根据需要隐藏和显示它们?
谢谢。
在添加和移除子视图时,使用addSubview:
和removeFromSuperview
比隐藏和显示更好。
在同一ViewController
中,您可以使用addSubView:
添加视图,使用removeFromSuperView
来移除视图。
添加和删除子视图是实现此目的的最佳方法。但如果您使用故事板进行此操作,则所有重叠的视图可能会看起来凌乱,并且难以管理。
实现此目的的最佳方法是通过编程方式添加视图,并通过编程方式设置布局约束。
UIView *subView = [[UIView alloc]init];
subView.backgroundColor = [UIColor blackColor];
NSDictionary *viewsDictionary = @{@"subView":subView};
NSDictionary *metrics = @{@"offset":@20};
NSArray *heightConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-offset-[subView]-offset-|"
options:0
metrics:metrics
views:viewsDictionary];
NSArray *widthConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-offset-[subView]-offset-|"
options:0
metrics:metrics
views:viewsDictionary];
[self.view addConstraints:heightConstraint];
[self.view addConstraints:widthConstraint];