我正在为tvOS编写应用程序,并且正在使用UISegmentedControl。我的问题是,当我滚动浏览项目时,只要我在项目上停留一两秒钟,它就会发送其action方法。我想禁用此行为,而是仅在用户单击该行为时才触发该行为。
有人知道怎么做吗?

最佳答案

我的tvOS应用程序有相同的问题,并通过以下方法解决了:

@IBOutlet weak var searchSegmentedControl: UISegmentedControl!

override func viewDidLoad() {
    let tap = UITapGestureRecognizer(target: self, action: #selector(didClickSegmentedSearchButton))
    tap.numberOfTapsRequired = 1
    view.addGestureRecognizer(tap)
}

func didClickSegmentedSearchButton() {
    switch searchSegmentedControl.selectedSegmentIndex {
    case 0:
        // Restaurant
    case 1:
        // Hotel
    case 2:
        // Attraction
    case 3:
        // Shopping
    default:
        // Unknown
    }
}

关于uikit - 防止UISegmentedControl自动发送 Action 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40553724/

10-12 13:47