SubView не хочет вписываться в указанный кадр - PullRequest
0 голосов
/ 21 июля 2010

Проблема возникает, когда я динамически загружаю подпредставление из nib и добавляю его в текущий основной вид во время viewDidLoad.

UIView *someView = // load from nib
someView.frame 
    = CGRectMake(.0, 
                .0, 
                kFormSheetWidth /* = 540.0 */, 
                kFormSheetHeight) /* = 576.0 */;
[self.view addSubview:someView];

Все это происходит в окне FormSheet, где был передан экземпляр UINavigationControllerв presentModalViewController :.Но someView всегда изменяет свой размер на 220,0 и на 116,0 и, следовательно, не помещается в окно.

перо someView выглядит как

UITableView
xx UIView
xxxx UITextInput
xx UIButton

Все эти представления имеют autoresizeSubviews == YES, clipSubviews == YES.

Это очень удивительное поведение.Интересно, что когда я устанавливаю рамку someView в viewWillAppear:, все выглядит нормально.Что (где) я должен искать, чтобы заняться этой вещью?

Ответы [ 2 ]

0 голосов
/ 10 июня 2015

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

Что вам нужно сделать, это установить autoresizeSubviews в NO или просто установить его кадр в viewWillApear.

0 голосов
/ 25 февраля 2011

Вы делаете это в ландшафтном режиме? (я полагаю, ipad из-за размеров?)

Это что-то вроде удара в темноте, но это проблема для многих людей. (если это не так, я прошу прощения)

Вид пользователя root UINavigationController не обрабатывает

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

метод, как и ваш код, поэтому вам нужно создать подкласс UINavigationController и реализовать его как ваши контроллеры представления, чтобы он не всегда добавлял представления в портретном режиме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...