我正在使用MacOS
在Xcode
下编写一个简单的应用。我希望我的应用程序始终处于横向模式。所以我在项目属性中设置横向方向。但是当我向window.subview
添加按钮时,此按钮不会显示在横向位置。
我只有AppDelegate类。我改变了功能: - (BOOL)应用程序:(UIApplication *)应用程序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)];
得到了:
答案 0 :(得分:3)
选择目标项目,并确保选择以下横向模式:
答案 1 :(得分:1)
我已经解决了这个问题:
创建我自己的RootViewController(如How to create root view controller中所示)
然后:
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];
答案 2 :(得分:0)
有两种机制可以控制它。
您已了解目标属性。如果你改变了这一点,那就应该照顾它。
还有一个较低级别的控件,您可能从旧模板代码中获取了该控件。对于每个视图控制器,如果实现方法
shouldRotateToInterfaceOrientation:
这将覆盖目标的设置。我怀疑超类实现只是引用了目标设置。
答案 3 :(得分:0)
您可以在YourProject-info.plist中添加UISupportedInterfaceOrientations
属性,如下所示,然后它只支持横向。
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
</array>
但不知道你的两张照片是什么意思