1

我正在使用 UIViewController 来显示我的视图。我的视图已在界面生成器中创建。

现在这些是视图的下一个参数:

宽度:568 高度:320 方向:横向

在 ViewController 我有下一个代码:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}

在 info.plist 中,我只添加了左右两个界面方向。

但是当我尝试在代码中输出视图的宽度时,我得到 320,当我尝试输出高度时,它会在控制台 568 中写下来,但我希望得到 320。

我不知道为什么它会这样工作。有什么建议么?

即使我添加这个:

[self.view setFrame:CGRectMake(0, 0, 568, 320)];在 viewDidLoad 方法中。即使那样我的身高也不正确

我需要知道我在这种方法中使用的宽度尺寸:

- (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,因为双方互相交换 - 因为。

4

2 回答 2

2

也许您在方向发生之前在 viewDidLoad 方法中打印宽度和高度。尝试在 viewWillAppear 上或使用 performSelector:afterDelay 打印它:

可能影响视图尺寸的另一件事是如何在界面构建器上设置自动调整大小的掩码(右侧面板上 x、y、高度、宽度部分下方的红色箭头)

于 2012-11-01T20:18:58.750 回答
0

请添加LaunchScreen.storyboard您的项目并将其设置为您的启动屏幕

目标 > 常规 > 应用程序图标和启动图像 > 启动屏幕文件。

于 2017-06-01T09:38:47.400 回答