4つのGMGridViewCellがあるGMGridViewを備えたビューコントローラがあります。セルビューごとに、セルのコンテンツビューとして個々のビューコントローラービューを使用しています。GMGridVeiwCellにロードされているビューコントローラーにはボタンがあります。GMGridViewCell内のボタンをタップすると、ボタンのIBActionメソッドが呼び出されません。誰かがこれについて私を助けることができますか?ボタンのアクションをキャッチするにはどうすればよいですか?
質問する
206 次
1 に答える
2
簡単な解決策は、次のようなクラスでオーバーライド- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
することです。GMGridView
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if(gestureRecognizer == _tapGesture) {
UIView* touchedView = [touch view];
if([touchedView isKindOfClass:[UIButton class]]) {
return NO;
}
}
return YES;
}
これを言って、あなたはさらなる情報のためにこの議論に頼ることができます:GMGridView議論。
これで問題が解決するかどうか教えてください。さらに、なぜ各カスタムビューのコントローラーを使用するのですか?目標を達成するための最も簡単な方法は、カスタムビューのデリゲートを作成することだと思います。デリゲートは、を含むコントローラーになりますGMGridView
。カスタムビューのボタンをクリックすると、デリゲートを呼び出して、それに応じて応答します。
お役に立てば幸いです。
于 2012-11-02T20:17:32.373 に答える