2

Siri リモートで再生/一時停止ボタンにアクセスし、メニュー ボタンを無効にするにはどうすればよいですか? 現在これを使用していますが、うまくいきません。このコードを使用するとプログラムがクラッシュしますが、一時停止ボタンを押して 4 つの例を呼び出した場合のみです コーダーは現在、touchesBegan の隣の didMoveToView の下に配置されています

let tapGesture = UITapGestureRecognizer(target: self, action: "handleTap:")
tapGesture.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)]
self.view.addGestureRecognizer(tapGesture)
4

3 に答える 3

1

あなたの問題はhandleTap:、パラメータを受け取るという関数を呼び出しているが、という関数がないことですhandleTap:。それactionがこの行で表されているものです:

let tapGesture = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))

次のように変更func tapped()します。

func handleTap(sender: UITapGestureRecognizer) {
    if sender.state == UIGestureRecognizerState.Ended {
        print("Menu button released")
    }
}
于 2016-04-24T14:01:04.110 に答える
0

tapRecognizerセレクターを以前にセットアップしたタッチハンドラー関数に移動することで問題を解決したため、コードは次のようになります。

private func handleTouches(touches: Set<UITouch>) {
    for touch in touches {
        let touchLocation = touch.locationInNode(self)
        lastTouch = touchLocation

        let tapRecognizer = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
        tapRecognizer.allowedPressTypes = [NSNumber(integer: UIPressType.PlayPause.rawValue)];
        self.view!.addGestureRecognizer(tapRecognizer)
    }
}

func handleTap(sender: UITapGestureRecognizer) {
    if sender.state == UIGestureRecognizerState.Ended {
        print("Menu button released")
    }     
 }
于 2016-04-25T21:56:08.613 に答える