0

それはトリッキーです。非常に大きなボタンの上に小さなボタンがあります。その大きなボタンの小さなボタンが押されると、小さなボタンが何かをします。しかし、大物は何もしません。もちろん。しかし、小さなボタンがタップされたかどうかに関係なく、大きなボタンも何かをしたいと思っています。したがって、小さなボタンはすべてのタッチ イベントをその大きなボタンに転送する必要があります。それを行う最も簡単な方法は何ですか?

UIViewについては知っていますが、UIControlにはUIViewとは異なる独自のタッチ処理メソッドがあります。UIView では、次のようになります。

[self.nextResponder touchesBegan:touches withEvent:event];
4

2 に答える 2

0

大きなボタンが小さなボタンからメッセージを受信できるようにするプロトコルを実装できますが、UIViewController に両方のボタンを配置し、小さなボタンに (セレクターまたはプロトコルのいずれかを介して) クリックされたことを UIViewController に伝えてから、 UIViewController はそれに応じて大きなボタンを更新できます....プロトコルの詳細はこちらhttp://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html

于 2009-08-21T17:31:38.257 に答える
0

タッチ イベントを合成する方法を示すこの投稿をご覧になることをお勧めします。しかし、それはしばらくの間機能しなくなりました。今再訪すると、彼は 3.0 サポート用に更新したように見えるので、うまくいくかもしれません。警告は、配送アプリには適さない可能性があることです.

bigButtonWorkもっと簡単な方法は、大きなボタンがタップされたときに動作するメソッド ( と呼びましょう) を分割して公開することです。次に、大きなボタンのタップ ハンドラーがこのルーチンを呼び出すだけです。小さなボタンがタップされると、ハンドラー内で独自のことを行うか、bigButtonWork代わりに呼び出すかを選択できます。

しかし、大きなボタンが実際に押されていることをシミュレートしたいので (ハイライトと状態の変更を完了)、合成されたイベント ルートに移動する必要があると思います。

于 2009-08-21T17:47:37.477 に答える