问题标签 [uiinterfaceorientation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
12680 浏览

objective-c - 启用页面和设备旋转/方向更改的 UIScrollView (MADNESS)

我很难做到这一点。

我有一个 UIScrollView,启用了分页。它由视图控制器 (MainViewController) 管理,每个页面由 PageViewController 管理,其视图在适当的偏移量处添加为滚动视图的子视图。滚动是左右滚动,适用于标准方向的 iPhone 应用程序。效果很好。基本上和 Apple 提供的样例一模一样,也和 iPhone 提供的 Weather 应用程序一模一样。

但是,当我尝试支持其他方向时,事情并不顺利。我用这个方法支持 MainViewController 和 PageViewController 中的每个方向:

但是,当我旋转设备时,我的页面变得非常倾斜,并且有很多绘图故障,特别是如果只加载了一些页面,然后我旋转,然后滚动更多,等等......非常混乱。

我已经告诉我的观点支持自动调整大小

但无济于事。这似乎只是延伸和扭曲了我的观点。

在我的 MainViewController 中,我添加了这一行以尝试调整所有页面视图的大小:

但这并没有太大帮助(因为我懒惰地加载视图,所以在执行时并非所有视图都必须加载)。

有没有办法解决这个问题?

0 投票
2 回答
268 浏览

iphone - 当应用程序加载时,我如何以编程方式知道我在哪个界面方向?

使用其中一些方法,我可以检查我将设备旋转到的方向。但是我怎么知道我在加载应用程序时所处的方向呢?我想编写代码以通过检查我的方向的方式来重新排列 viewDidLoad 方法中的视图?

0 投票
1 回答
10751 浏览

iphone - 在 iPhone 上强制 UIInterfaceOrientation 更改

我正在努力获得一个 iPhone 应用程序,该应用程序几乎需要导航控制器堆栈中的每次推送或弹出来改变方向。

基本上第一个视图是肖像,第二个风景是第三个肖像(是的,我知道这不太理想,但这就是设计,我必须实现它)。

我在这里接受了各种建议......
如何在没有设备自动旋转的情况下检测 iPhone 上的旋转?
强制纵向将新视图推送到 UINavigationViewController
是否有记录的方法来设置 iPhone 方向?
但没有完全成功。

设置链接到 3.1.2 我对上面链接文章的阅读似乎表明,如果我的纵向视图使用

然后该视图应显示为旋转为横向。发生的情况是它以“破碎”的肖像形式出现,然后在设备转动时正确旋转。

如果我将控制器弹出回我的纵向视图(具有适当的 shouldAutoRotate...),那么它将保持在损坏的横向视图中,直到设备返回纵向。

我还尝试删除所有 shouldautorotate 消息,而是通过转换视图来强制旋转。这种方法有效,我发现通过移动状态栏(实际上隐藏在我的应用程序中)[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;,键盘将在需要时以正确的方向显示。

这种方法的问题在于,当您没有状态栏时,状态栏转换会很奇怪而且很难看——每次更改都会在页面上隐约出现阴影。

所以。我错过了什么。

1)我认为在 3.1.2(或可能更早)中 shouldAutorotateToInterfaceOrientation 应该通过推动控制器来提供所需的方向,我错了吗?

2)是否有另一种方法可以让键盘以正确的方向出现。

3) 未记录的 API 调用是否可行(请不要!)

0 投票
1 回答
756 浏览

iphone - 有什么方法可以触发界面方向检查?

我的应用程序从反面视图(只有一个方向)转到其主视图(可以有任何类型的方向。当我从反面回到主视图时,不会检查主视图的方向并立即更改。

我需要一种方法来触发 willRotateToInterfaceOrientation 中发生的内置方向检查,以便当用户从翻转视图转到主视图时方向正确。任何帮助表示赞赏。

我看到了另一个关于此的问题,但没有看到明确的答案。

谢谢!

0 投票
1 回答
759 浏览

iphone - 为什么在 MPMoviePlayerController 中播放电影时无法正确检索 UIDeviceOrientation?

当我不玩任何东西时,一切正常(我正在调用 beginnotifications 等,并使用方向来旋转我的视图)。但是在我开始玩之后,我MPMoviePlayerController每次尝试

orientation得到UIDeviceOrientationUnknown一个.

有什么线索吗?当电影停止时,一切都恢复正常。我需要这个方向来旋转播放器的窗口,因为我使用的是 Iphone OS 3.1,所以我不能直接使用 MPMovie 播放器控制器中的 view 属性。

0 投票
1 回答
870 浏览

iphone - UITabBarController 和 viewControllers 利用不同的方向?

我可以看到这是困扰很多人的事情:/

我有一个具有 4 个视图控制器的 UITabBarController,所有类型均为 UINavigationController。其中一个 navigationController 将 viewController 推送到它的堆栈上,这个 viewController 应该以横向模式/方向呈现。

viewController 是一个图形,它绝对是应用程序中唯一一个对景观有意义的地方。(当它出现时我隐藏了 UITabBar 不会让用户相信这会在任何地方工作)

要使 UITabBarController 正确响应方向的变化,它的所有 viewController 需要从委托方法返回相同的值:

所以为了适应这种行为,我在属于 UITabBarController 的所有 viewController 中实现了这个方法:

现在的“窍门”是,当我的可横向视图控制器被推送时,我会这样做:

当它弹出时,我这样做:

这真的很好用。当 viewController 在堆栈上时,我可以旋转设备并且视图随之而来。

然而,问题是,如果用户在横向模式下点击导航栏上的“后退”按钮,从而将 viewController 弹出到前一个 viewController,那么这个“旧”viewController 当然也处于横向模式。更糟糕的是,因为我将 BOOL 设置为 NO,当我将设备定向为纵向模式时,这个“旧”视图控制器无法旋转回来。

有没有办法更新所有内容,以便当我弹出可以处于横向模式的视图控制器时,我的其他视图控制器都不会处于横向模式?

我有点担心,如果这可以从横向到纵向完成,那么从纵向到横向也应该是可能的,从而使我的“黑客”变得不必要..但如果不能,那么我回到第一方:/

希望我很接近,有人可以帮助我到达那里,谢谢:)

0 投票
2 回答
1390 浏览

iphone - 为什么这个 UIImage 在旋转到横向时会从 UITableViewCell 中消失?

我正在尝试设置一个可以在右上角有图像的 UITableViewCell。

我让它在纵向模式下工作,但是当我旋转到横向时,图像消失了。

这是代码:

有趣的是,如果我注释掉“cell.textLabel.text =”行,图像确实以横向显示......尽管它不会转移到最右边。

如果我在这里做错了什么,请告诉我。

提前感谢您的任何帮助。

0 投票
1 回答
987 浏览

iphone - 纵向启动问题的 iPad 方向(底部主页按钮)

我有一个支持所有方向的 iPad 应用程序......我的问题在于应用程序的启动。在landScapeRight 和landScapeLeft 和纵向(顶部主页按钮)的情况下,视图显示正确,但是当应用程序以纵向(底部主页按钮)启动时,视图以横向模式显示......我已经实现了

- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

当我更改应用程序方向时,视图正确显示。

0 投票
1 回答
417 浏览

iphone - 在 UINavigationController 中转换为纵向旋转

我有一种情况,需要将仅纵向模式视图推送到导航控制器中,该控制器具有横向模式视图作为其当前视图。

虽然我重新实现了

但它仍在横向模式下推动视图。我也尝试过以下方式,但即使这样也行不通。

我尝试查看其他相关问题,但没有找到任何东西。

知道如何解决这个问题吗?

谢谢!

0 投票
2 回答
7835 浏览

iphone - iPad方向更改问题

我的 iPhone 应用程序在 iPad 上运行时显示一些奇怪的行为,以支持方向更改。

该应用程序以视图控制器(为了参数而将其称为视图 A)和导航控制器启动,并且 shouldAutorotateToInterfaceOrientation 仅针对纵向返回 YES。在导航控制器上,我推送一个视图控制器(视图 B),该控制器也仅针对纵向返回 YES。然后,我将另一个视图控制器(视图 C)推到支持所有旋转的导航控制器上,并根据要旋转到的方向调整屏幕上的项目。

当它在 iPhone 模拟器和设备上运行时,如果您在视图 C 上旋转到横向,然后点击后退按钮返回到视图 B,它会做正确的事情并将视图 B 切换回纵向模式。(在模拟器中,它甚至会自动将模拟器旋转回纵向。)

我遇到的问题是,当我在 iPad 模拟器和设备上执行完全相同的事件序列时,出现的视图 B 没有旋转回纵向,导航控制器仍然显示视图 C 的信息。然后,我点击后退按钮,视图保持不变,但导航控制器显示视图 B 正常(但仍处于横向模式)。然后,如果我再次点击后退按钮,视图 A 会出现在视图 B 导航栏项目下,最后再次点击后退让我进入视图 A 和导航栏 A 项目。

如果我在 iPad 上查看 B 并开始旋转,shouldAutorotateToInterfaceOrientation 会以 NO 触发,直到我达到纵向模式,然后一切恢复正常。

该应用程序使用最新发布的 iPhone SDK 版本构建,构建设置如下:iPhone Simulator 4.0 的 Base SDK、iPhone 的目标设备系列、iPhone OS 3.1.3 的 iPhone OS 部署目标。

有任何想法吗?