我正在使用UIViewController来显示我的视图。我的视图已在界面构建器中创建。
现在这些是视图的下一个参数:
宽度:568 身高:320 方向:景观
ViewController中的我有下一个代码:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}
在info.plist中我只添加了左右两个界面方向。
但是当我尝试在代码中输出我的视图宽度时,我得到320,当我尝试输出高度时,它会在控制台568中写下来,但我希望是320。
我不知道为什么会这样。有什么建议吗?
即使我添加了这个:
viewDidLoad方法中的 [self.view setFrame:CGRectMake(0, 0, 568, 320)];
。即便如此我还有高度
我需要知道我在这种方法中使用的宽度:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
CGFloat width = 0.0f;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
width = 568.0f;
} else {
width = 1024.0f;
}
NSInteger page = scrollView.contentOffset.x / width;
NSLog(@"%d", page);
}
现在我使用宽度的硬编码变量,但是为什么会这样。为什么我不能使用self.view.frame.size.width
,因为双方相互交叉 - 因为。
答案 0 :(得分:2)
也许您在定向发生之前在viewDidLoad方法中打印宽度和高度。尝试在viewWillAppear或performSelector:afterDelay:
上打印它可能影响视图尺寸的另一件事是如何在界面构建器上设置自动调整蒙版(右侧面板上x,y,高度,宽度部分下方的红色箭头)
答案 1 :(得分:0)
请在项目中添加LaunchScreen.storyboard
,并将其设置为
目标>一般>应用程序图标和启动图像>启动屏幕文件。