tvOS 上的 UIScrollView

UIScrollView on tvOS

问题很简单,如何在 tvOS 中的 UIScrollView 中启用滚动和缩放?

我尝试了来自 iOS 的相同初始化程序代码并返回了 focusedView var 的滚动视图,但是当我触摸遥控器时没有任何反应。

此外,我尝试将另一个自定义 UIPanGestureRecognizer 添加到滚动视图并且实际上它有效,但我不想使用自定义代码处理平移,只需使用相同的像 iOS.

这样的平移行为

告诉我,谢谢。

您可以配置滚动视图的内置平移手势来识别 Siri Remote 上的触摸。它不会自动执行此操作,因为通常 tvOS 上的滚动视图不会通过触摸直接滚动:它们会随着焦点在滚动视图内的视图之间移动而自动滚动。

如果你真的想让滚动视图直接从触摸移动,你需要将UITouchTypeIndirect添加到滚动视图的panGestureRecognizerallowedTouchTypes:

scrollView.panGestureRecognizer.allowedTouchTypes = @[ @(UITouchTypeIndirect) ];

您还需要确保滚动视图本身是聚焦视图,或者是聚焦视图的父视图,因为来自遥控器的所有触摸都将从聚焦视图的中心开始:您需要确保滚动视图经过命中测试才能使事件正常工作。

缩放不起作用,因为 Siri Remote 一次只能识别一个触摸,所以你不能在上面做捏合手势。

Swift 4 版本(来自这里:

scrollView.panGestureRecognizer.allowedTouchTypes = [NSNumber(value:UITouchType.indirect.rawValue)]