2012-02-22 27 views
0

私はカスタムコントローラで作業しています。私は、より多くのオプションの中から選択するために、スライダを作成したいと思います。問題は、私がボタンに触れると私はそれが私のtouchesBeganメソッドを呼び出さないことです。しかし私が私の見解の他の部分を押すと、それは機能します。ボタンを動かすにはどうすればいいですか?タッチでドラッグボタンを移動

ありがとうございました。あなたはUIButtonのサブクラスを作成し、touchesBegan

を実装する必要がありますそれが機能するためには

答えて

2

UIButtonは、タッチイベントをキャプチャしています。あなたはこの

myButton.userInteractionEnabled = NO; 

を試みる場合、それはもはやタッチイベントを消費しませんが、それはまた、もはやonTouchUpInsideイベントを発生しません。この場合、スーパービューのすべてのタッチを処理し、それに応じてスライダボタンを配置します。

それはうまくドラッグする必要があります。これは任意のUIViewで動作します。

0

カスタムUIViewを作成してUIButtonクラスの使用を避けてみませんか? UIButtoをサブクラス化するか、または設定するのが簡単です

myButton.userInteractionEnabled = NO; 
+0

はい、これは私が最後にやることだと思います。スライダーを押したときにタッチアップ効果を追加したかったのです。 – Cosmin

+0

これが最善の選択であることがわかります。ごくわずかな時間で、あなたが望むあらゆるタッチ効果を作り出すことができます – Pablosproject

関連する問題