您是否知道隐藏视图(或任何类似视图)的简单(或不简单)方法,并让屏幕的其他视图使用留空的位置?在显示该视图时,反之亦然。像Android Visibility = GONE for layers。
谢谢
答案 0 :(得分:1)
许多UIKit类都有一个属性hidden
,可以满足您的需求。它在UIView中定义,因此您可以在大多数可视元素中找到它。
答案 1 :(得分:0)
就我的研究表明,没有Visibility.GONE这样的东西,甚至AutoLayout也无法帮助你。您必须手动替换受可选显示组件影响的视图(在我的情况下,bottomView上的optionalView下面的所有视图):
- (IBAction)toggleOptionalView:(id)sender {
if (!_expanded) {
self.optionalView.frame = CGRectMake(self.optionalView.frame.origin.x, self.optionalView.frame.origin.y, self.optionalView.frame.size.width, _optionalHeight);
self.bottomView.frame = CGRectMake(self.bottomView.frame.origin.x, self.bottomView.frame.origin.y+_optionalHeight, self.bottomView.frame.size.width, self.bottomView.frame.size.height);
_expanded = YES;
} else {
self.optionalView.frame = CGRectMake(self.optionalView.frame.origin.x, self.optionalView.frame.origin.y, self.optionalView.frame.size.width, 0);
self.bottomView.frame = CGRectMake(self.bottomView.frame.origin.x, self.bottomView.frame.origin.y-_optionalHeight, self.bottomView.frame.size.width, self.bottomView.frame.size.height);
_expanded = NO;
}
}
建议不要对可选组件的高度进行硬编码,否则每次编辑XIB / Storyboard时代码都会中断。我有一个我在viewDidLoad中设置的字段float _optionalHeight,所以它总是最新的。