1

我正在MacOSusing下编写一个简单的应用程序Xcode。我希望我的应用程序始终处于横向模式。所以我在项目属性中设置了横向。但是当我在我的 中添加一个按钮时window.subview,这个按钮不会出现在横向位置。

我只有 AppDelegate 类。我改变了函数:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

我已经添加:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor purpleColor];
[self.window makeKeyAndVisible];

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setBackgroundColor:[UIColor whiteColor]];
[button setFrame:CGRectMake([[UIScreen mainScreen] bounds].size.width/2 - 50, [[UIScreen mainScreen] bounds].size.height/2,
                            100, 100)];
[button setTitle:@"Button" forState:UIControlStateNormal];
[self.window addSubview:button];

在此处输入图像描述

更新:我添加了 [self.window setTransform:CGAffineTransformMakeRotation(-M_PI/2)];

并得到: 在此处输入图像描述

4

4 回答 4

4

选择您的目标项目并确保您选择了以下横向模式:

在此处输入图像描述

于 2013-05-15T10:47:34.817 回答
1

我已经这样解决了:

  1. 创建我自己的 RootViewController(如如何创建根视图控制器

  2. 然后:

    self.rootController = [[AppRootViewController alloc] init];
    
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.rootViewController = self.rootController;
    [self.window addSubview:self.rootController.view];
    
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    ....
    
    [[[self.window rootViewController] view] addSubview:button];
    
于 2013-05-15T13:17:35.230 回答
0

您可以按如下方式在 YourProject-info.plist 中添加UISupportedInterfaceOrientations属性,那么它将仅支持横向。

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationLandscapeRight</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
</array>

但是不知道你的两张图是什么意思

于 2013-05-15T15:08:51.900 回答
0

有两种机制可以控制这一点。

您已经了解目标属性。如果这就是你改变的全部,这应该照顾它。

还有一个较低级别的控件,您可能已经从旧模板代码中获取了它。对于每个视图控制器,如果您实现该方法

shouldRotateToInterfaceOrientation:

这将覆盖目标的设置。我怀疑超类的实现只是指目标设置。

于 2013-05-15T13:37:52.067 回答