0

4つのGMGridViewCellがあるGMGridViewを備えたビューコントローラがあります。セルビューごとに、セルのコンテンツビューとして個々のビューコントローラービューを使用しています。GMGridVeiwCellにロードされているビューコントローラーにはボタンがあります。GMGridViewCell内のボタンをタップすると、ボタンのIBActionメソッドが呼び出されません。誰かがこれについて私を助けることができますか?ボタンのアクションをキャッチするにはどうすればよいですか?

4

1 に答える 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 に答える