【问题标题】:UIScrollView dragging affected by UIWindow transform rotation受 UIWindow 变换旋转影响的 UIScrollView 拖动
【发布时间】:2011-01-26 09:08:00
【问题描述】:

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

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

【问题讨论】:

    标签: ios uiscrollview transform uiwindow


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      滚动视图似乎保持着自己的隐藏变换。您可以尝试检查一下,看看在修改窗口变换之前或之后实例化和添加滚动视图是否有任何区别。

      【讨论】:

      • 检查各种变换仍然导致我认为窗口变换是这种行为的罪魁祸首,但我不知道如何纠正这个问题。
      • viewController 变换、scrollView 变换和 scrollView 子视图变换都是相同的,与当前窗口变换无关。窗口变换是唯一改变的,它仍然改变了滚动视图的拖动行为。当 UIWindow 旋转 90 度时,水平和垂直滑动交换。当 UIWindow 旋转 180 度时,滑动方向反转(手指向左拖动 = 视图向右移动等)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多