У меня есть UIView в качестве XIB в портретном режиме.
Это представление программно добавляется в контроллер вида, например так:
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"InputView" owner:self options:nil];
InputView *inputView = (InputView*)[nibObjects objectAtIndex:0];
[self.view addSubview:inputView];
Это представление имеет автоматически изменяемые маски и вращается.хорошо, когда ориентация меняется с книжной на альбомную.
Однако, если ориентация уже альбомная, и я создаю вид после изменения ориентации, он имеет начальное значениепортретная ориентация.
Есть ли способ указать виду, чтобы инициализировать или изменить его размер для портрета, используя его маски?
Заранее спасибо за любой ответ!
РЕДАКТИРОВАТЬ: Используя предложенияOcculus и Inder Kumar Rathore (спасибо, ребята!), я изменил код так:
InputView *inputView = (InputView*)[nibObjects objectAtIndex:0];
[self.view addSubview:inputView];
[self.view setNeedsLayout];
[self.view layoutSubviews];
[self.view layoutIfNeeded];
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
[self shouldAutorotateToInterfaceOrientation:orientation];
К сожалению, никаких изменений нет.Я думаю, что я нашел кого-то, кто задавал тот же вопрос:
При добавлении вспомогательного представления размер не изменяется, если приложение находится в альбомном режиме
Ответ определяет проблемуправильно, но не очень обнадеживает ... Конечно, я мог бы создать два кончика или изменить размер кадра, но это кажется настолько противоречащим идее автоматического изменения размера.Мне трудно поверить в то, что после пробуждения невозможно определить перо и добавить его в представление для использования его функций автоматического изменения размера ... что-то, что работает безупречно, когда устройство вращается.
РЕДАКТИРОВАТЬ 2:
Решение idz работает:
InputView *inputView = (InputView*)[nibObjects objectAtIndex:0];
[self.view addSubview:inputView];
inputView.frame = self.view.bounds;
[inputView show];
Спасибо!