2011-06-28 5 views
0

これで、昨夜の2時間後の浪費の後、面白い行動がUIButtonであることがわかりました。私はおそらく過去にこれを見てきましたが、思い出すことはできません。これまでのところこの動作に関する説明が見つかりませんでしたので、これに関する情報があれば教えてください:UIButtonはイベント内でタッチアップします、境界は変わりますか?

のインスタンスを作成し、UIControlEventTouchUpInsideのアクションを設定してください。今、あなたの実行中のアプリケーションでは、ボタンを押しながら、ボタンから離して移動し、指を動かす/ドラッグするときに境界がどのように変わったかを確認します。タッチは、ボタンの元のフレーム境界からかなり離れたところで認識されます。

これは、私がlocationInViewを使用してコードを実装した私のアプリケーションでかなりの問題を引き起こしました。UITableViewCellのindexPath(ボタンのスーパービュー)を特定するためです。 indexPathを決定するための

私の二つの代替の解決策は以下のとおりです。 方法:

  1. が のUITableViewのindexPathForCellとともに、 UITableViewCellあるボタンのスーパーの スーパーを、使用してください。

  2. ボタン操作を指定するときは、UIControlEventTouchDown を使用してください。

誰かがこの情報を見つけたり、問題の解決に貢献したりします。

+0

これはバグではない機能だと思います。私はこれがより親しみやすくなると考えています。 – dasdom

+0

はい、私の考えも...ドキュメンテーションは私たちに推測を残してくれます... – Schoob

答えて

1

touchesBegan:withEventを使用できます。

+0

はい、しかし、それまで使用していた各ボタンをサブクラス化する必要があります。 – Schoob

+0

いいえ、ビューコントローラーでtouchesBeganを使用できます。 – dasdom

関連する問題