我有一个 UIView 作为肖像模式下的 XIB。
该视图以编程方式添加到视图控制器,如下所示:
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"InputView" owner:self options:nil];
InputView *inputView = (InputView*)[nibObjects objectAtIndex:0];
[self.view addSubview:inputView];
此视图已正确设置自动调整大小的蒙版,并且在方向从纵向更改为横向时可以正常旋转。
但是,如果方向已经是横向并且我在方向更改后创建视图,则它具有初始纵向方向。
有没有办法告诉视图通过使用它的掩码来初始化或调整自身大小为纵向?
提前感谢您的回复!
编辑:使用 oculus 和 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];
谢谢!