哪些类型的 UI 元素可以响应 tvOS 中的手势?

What types of UI elements can respond to gestures in tvOS?

我是 tvOS 的新手,我试图通过向一堆 UI 元素添加手势识别器来让我的应用程序更具交互性,但我发现我无法使用其中的一些元素来做到这一点。

我注意到 UIButton、UICollectionView 或 UITableView 是可以识别手势的那些,但是如果我创建自定义视图并将自定义手势识别器添加到它,它不起作用。

我是不是做错了什么,或者有一个 UI 元素的列表可以响应手势?!

非常感谢任何形式的帮助。

import UIKit

class TouchViewController: UIViewController{

@IBOutlet weak var myView: UIView!

override func viewDidLoad() {
    super.viewDidLoad()

    let swipeDown:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedDown:"))
    swipeDown.direction = .Down
    myView.addGestureRecognizer(swipeDown)

    let tap = UITapGestureRecognizer(target: self, action: "itemTapped:")
    tap.allowedPressTypes = [NSNumber(integer: UIPressType.Select.rawValue)]
    myView.addGestureRecognizer(tap)

}

func itemTapped(gesture: UITapGestureRecognizer){
    print("tapped") 
}

func swipedDown(sender:UISwipeGestureRecognizer){
    print("swiped")
}

各种view都能识别手势,你说的类没什么特别的

您的手势一定是由于其他原因无法正常工作:您能否详细说明您正在尝试做什么,并提供一些示例代码?

根据您的代码更新:

确保您将这些手势附加到 (1) 的视图已获得焦点,或者 (2) 包含获得焦点的视图。事件被传送到聚焦视图,并可能 "bubble up" 从那里进入响应者链。如果您的自定义视图不包含焦点视图,那么它不会看到任何这些事件。