iPhone - как я могу скрыть вид и позволить его пространству использоваться другими видами (например, видимость Android = GONE) - PullRequest
0 голосов
/ 19 января 2011

Знаете ли вы простой (или не простой) способ скрыть представление (или что-либо подобное представлению) и позволить другим представлениям экрана использовать оставленное пустое место? И сделайте обратное, когда возвращаетесь к этому виду. Что-то вроде Android Visibility = GONE для слоев.

Спасибо

Ответы [ 2 ]

1 голос
/ 19 января 2011

Многие классы UIKit имеют свойство hidden, которое делает то, что вы хотите. Он определен в UIView, так что вы найдете его в большинстве визуальных элементов, которые вы используете.

0 голосов
/ 14 марта 2014

Насколько мне известно, в Visibility не существует такой вещи, как Visibility. Даже AutoLayout не может вам помочь.Вы должны вручную заменить виды, на которые воздействует опционально показанный компонент (в моем случае, все виды под опциональным видом на bottomView):

- (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 / раскадровку.У меня есть поле с плавающей точкой _optionalHeight, которое я установил в viewDidLoad, поэтому оно всегда актуально.

...