автоизмените размер uiview

У меня есть a UIView в a UITabController. И существует a UITableView в нем.

При переключении в панели состояния вызова это ничего не делает, и представление автоматически не изменено.

Это принимает правильный размер на основе ли в вызове UIStatusBar был переключен, когда приложение запускается, но если UIStatusBar переключается, пока приложение работает, ничто не изменяется.

Другое представление вкладки с a UINavigationController кажется, изменяет размер прекрасный.

Вот код

if ([indexPath indexAtPosition:0] == 0 || [indexPath indexAtPosition:0] == 1) {
        if (!airportChooser) {
            airportChooser = [[AirportChooserController alloc] init];
            airportChooser.targetController = self;
            airportChooser.view.autoresizesSubviews = YES;  
            airportChooser.view.autoresizingMask = UIViewAutoresizingFlexibleHeight;
            [airportChooser.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth];
        }
        airportChooser.target = [indexPath indexAtPosition:0];
        [self.parentViewController.parentViewController.view addSubview:airportChooser.view];
        self.parentViewController.parentViewController.view.autoresizesSubviews = YES;
        self.parentViewController.parentViewController.view.contentMode = UIViewContentModeRedraw;
        [self.parentViewController.parentViewController.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth];
        airportChooser.view.contentMode = UIViewContentModeRedraw;
        //[airportChooser open];
    }
6
задан Alex Cio 6 January 2016 в 14:22
поделиться

2 ответа

Вы установили маску изменения размера UIView правильно? Вы можете установить его в Interface Builder на вкладке размера, это красные линии, по которым вы можете щелкнуть.

Вы также можете установить это в коде, используя что-то вроде:

[view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | 
                          UIViewAutoresizingFlexibleHeight];

Также убедитесь, что супервизор установил для параметра autoresizesSubviews значение ДА.

Дополнительную информацию об этом можно найти в документации UIView .

14
ответ дан 8 December 2019 в 17:18
поделиться

Хотя ответ Клааспейтера имеет смысл и в некоторых случаях может быть правильным ответом в моем конкретном случае это произошло из-за того, что я добавлял дополнительное представление к представлению UINavigationController с помощью addSubview вместо pushViewController: анимированный просмотр: NO;

0
ответ дан 8 December 2019 в 17:18
поделиться