相关疑难解决方法(0)

是否有记录的方式来设置iPhone方向?

我有一个应用程序,我想在某些视图中支持设备旋转,但其他在横向模式下没有特别有意义,所以当我交换视图时,我想强制旋转设置为纵向.

在UIDevice上有一个未记录的属性设置器可以完成这个技巧,但显然会产生编译器警告,并且可能会随着SDK的未来版本而消失.

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
Run Code Online (Sandbox Code Playgroud)

是否有任何记录的方法来强制定位?

更新:我想我会提供一个例子,因为我没有找到shouldAutorotateToInterfaceOrientation,因为我已经实现了它.

我希望我的应用程序支持View 1中的横向和纵向,但只支持View 2中的纵向.我已经为所有视图实现了shouldAutorotateToInterfaceOrientation但是如果用户在View 1中处于横向模式然后切换到View 2,我想强制执行手机旋转回肖像.

iphone cocoa-touch objective-c

94
推荐指数
8
解决办法
8万
查看次数

如何以编程方式设置设备(UI)方向?

希望屏幕上的所有内容(UI)能够从左到右旋转或反之亦然.

我该怎么做呢?这是私人的吗?

我知道

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {}
Run Code Online (Sandbox Code Playgroud)

让你说出UI可以有哪些方向,但有没有办法一次只强制一个?

干杯

iphone objective-c orientation ios

23
推荐指数
4
解决办法
8万
查看次数

仅横向使用多个笔尖的iPhone应用程序

我正在开发一个有几个笔尖的iPhone应用程序,应该只是风景.

应用程序设置为通过Info.plist文件以横向模式启动.

我有两个视图控制器: FirstViewControllerSecondViewController.

对于其中的每一个,我都有一个nib文件,其中视图是横向的.两个视图控制器都MainView作为插件添加到我的nib中,并且它们的视图被懒惰地初始化.

加载应用程序时,第一个视图按预期显示在横向中.但是,当我切换到第二个视图时,设备(或模拟器)保持横向,但视图旋转,就好像设备处于纵向模式,制动我的界面.

在这两个UIViewController类中,我有以下代码:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return interfaceOrientation == UIInterfaceOrientationLandscapeRight;
}
Run Code Online (Sandbox Code Playgroud)

并切换视图,在我的app委托中我正在做:

[viewController.view removeFromSuperview];
[window addSubview:secondViewController.view];
Run Code Online (Sandbox Code Playgroud)

视图控制器连接的两个出口位置viewControllersecondViewController位置.

这是第二个视图在IB中的显示方式: alt text http://img27.imageshack.us/img27/4898/picture1ni.png

这就是它在模拟器中的样子: alt text http://img402.imageshack.us/img402/4866/picture2wt.png

为什么第二个视图在横向显示但是界面旋转了?

我不想处理转换属性,因为这似乎有点过分.

iphone landscape

8
推荐指数
1
解决办法
2523
查看次数

如何实现UIViewController旋转以响应方向更改?

我的应用程序有大约10个不同的UIViewControllers,其中一个我想在旋转设备时切换到横向模式.(其余的,我想保持肖像.)

为了在那个视图上实现旋转,我需要实现其控制器的'shouldAutorotate'方法并返回YES.由于这个视图是通过导航控制器访问的,我还需要创建一个UINavigationController的子类,它实现'shouldAutorotate'并返回YES.

这个解决方案很有效,但也很好.我发现我推到UINavigationController的子类上的所有UIViewControllers都会响应旋转,即使我实现'shouldAutorotate'并返回NO.(记住:我只希望一个特定的UIViewController响应旋转,而不是导航控制器堆栈中的每一个.)

所以,我的问题是:我该如何做到最好?我能提出的所有解决方案似乎都很麻烦,2)更糟糕,似乎没有用.

非常感谢.

iphone uiviewcontroller screen-orientation

7
推荐指数
1
解决办法
1万
查看次数

iPhone:仅在横向上,在第一个addSubview之后,UITableViewController无法正常旋转

github上提供了一个最小的说明性Xcode项目.

在我的UIWindow上,当我添加第二个(和后续的)UITableView作为子视图时,它们不能正确旋转,因此会出现在侧面.这仅在模拟器中测试.这里有一些代码给你:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    ShellTVC* viewA = [[ShellTVC alloc] initWithTitle:@"View A"];
    ShellTVC* viewB = [[ShellTVC alloc] initWithTitle:@"View B"];

    // The first subview added will rotate to landscape correctly. 
    // Any subsequent subview added will not.

    // You may try this by various commentings and rearranging of these two statements.

    [window addSubview:[viewA tableView]];
    [window addSubview:[viewB tableView]];

    [window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)

viewB出现在侧面.注释掉viewB的addSubview,viewA正确显示.仅对viewA执行此操作,并且viewB正确显示.

我不是通过NIB创建这些UITableViewControllers,尽管UIWindow是.

如果您想知道,ShellTVC是一个UITableViewController,并实现此方法:

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
 return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
Run Code Online (Sandbox Code Playgroud)

另外,我已将plist文件中的UIInterfaceOrientation设置为UIInterfaceOrientationLandscapeLeft.

可能相关 - 而且没有答案 - 这里和 …

iphone landscape

4
推荐指数
1
解决办法
9995
查看次数