iPhone - 如何隐藏视图并让其他视图使用它的空间(如android visibility = GONE)

时间:2011-01-19 07:23:18

标签: iphone animation uiview visibility show-hide

您是否知道隐藏视图(或任何类似视图)的简单(或不简单)方法,并让屏幕的其他视图使用留空的位置?在显示该视图时,反之亦然。像Android Visibility = GONE for layers。

谢谢

2 个答案:

答案 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,所以它总是最新的。