UIScrollView 拖动受 UIWindow 变换旋转影响

发布于 2024-10-14 00:17:33 字数 281 浏览 5 评论 0原文

我正在向我的 iPad 应用程序添加视频输出功能,但我的 UIScrollView 遇到了问题。为了在外部显示器上获得正确的视图方向,我根据当前界面方向旋转了 UIWindow(例如 -mirroredScreenWindow.transform = CGAffineTransformMakeRotation(-M_PI * 0.5);)。

我遇到的问题是 ScrollView 拖动似乎受到 UIWindow 变换的影响。如果 UIWindow 旋转 90 度,则水平拖动会垂直滚动视图,反之亦然。有什么办法可以纠正这个问题吗?

I'm adding a video out function to my iPad app and have run into a problem with my UIScrollView. To get the proper view orientation on the external monitor, I've rotated the UIWindow based on the current interface orientation (e.g. - mirroredScreenWindow.transform = CGAffineTransformMakeRotation(- M_PI * 0.5);).

The problem I've run into is that the ScrollView dragging seems to be affected by the UIWindow transform. If the UIWindow is rotated 90 degrees, horizontal drags scroll the view vertically and vice versa. Is there any way to correct this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟花易冷人易散 2024-10-21 00:17:33

我得到了 Apple 开发支持的回复,基本上是这样说的:“在 UIWindow 上进行转换会混淆内部对象,因此永远不应该这样做。”

看起来我只需要创建一个修改后的 ViewController,专门针对外部屏幕的格式来布局所有 UI 元素,而不是仅仅转换已经在 iPad 屏幕上正常工作的视图控制器。

I got a response from Apple Dev Support that said essentially, "Doing a transform on UIWindow will confuse the internal objects and should never be done."

Looks like I'll just have to create a modified ViewController that lays out all of my UI elements specifically for the format of the external screen, rather than just transforming the view controller that already works correctly on the iPad screen.

雨巷深深 2024-10-21 00:17:33

滚动视图似乎维护着自己的隐藏变换。您可以尝试检查它,看看在修改窗口变换之前或之后实例化和添加滚动视图时是否有任何差异。

Scroll views seem to maintain their own hidden transform. You can try examining it, and see if there's any difference between when instantiating and adding the scroll view before or after modifying the window transform.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文