0

我有一个带有 GMGridView 的视图控制器,其中有 4 个 GMGridViewCells。对于每个单元格视图,我使用单独的视图控制器视图作为单元格的内容视图。正在加载到 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 回答