所以我在设备方向更改时使用以下代码加载UIView,但是当页面加载时,页面上的内容没有以正确的方式布局。有关如何改变这一点的想法吗?
旋转而不在项目设置中左右检查。
在项目设置中左右检查旋转。 - 我实际上倾向于这个,因为至少状态栏位于正确的区域,但是失败的是页面的宽度没有变化,允许我水平构建......
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deviceOrientationDidChange) name:UIDeviceOrientationDidChangeNotification object:nil];
- (void)deviceOrientationDidChange{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation == UIDeviceOrientationPortrait){
NSLog(@"I'm portrait!");
}
else if (orientation == UIDeviceOrientationLandscapeLeft) {
NSLog(@"I'm landscape LEFT!!");
}
else if (orientation == UIDeviceOrientationLandscapeRight) {
NSLog(@"I'm landscape Right!!");
}
else {
}
}
答案 0 :(得分:1)
您是否在常规设置中选择了所有方向?
答案 1 :(得分:1)
您的代码正确响应设备方向的更改。
问题可能来自于您如何创建视图 最简单的方法是使用storyboard或IB,并设置约束,因此在旋转时,您的视图适合其新界限。
答案 2 :(得分:0)
通过对didGainWindow方法中的页面进行一些更改,能够使用下面的代码解决问题。
- (void)changePagePostionSettings{
self.w = 568;
self.h = 320;
customBackground.w = 568;
customBackground.h = 320;
}