UIButton touch up inside事件在ios5运行时不工作';It’在ios6中没问题

UIButton touch up inside事件在ios5运行时不工作';It’在ios6中没问题,ios5,ios6,uibutton,storyboard,Ios5,Ios6,Uibutton,Storyboard,我有一个包含大量UIButton的项目,使用Xcode4.5、情节提要和ARC。在ios6中进行测试后,一切正常。但在ios5中,UIButton touch-up内部事件不起作用,该操作未被调用。我试着使用触地,它起作用了。然而,我有很多UIButton,我不能一个一个地改变它。更重要的是,触地事件提供了一个很好的经验 我在许多视图控制器中使用了以下代码: 在viewDidLoad中: UITapGestureRecognizer *tap = [[UITapGestureRecognizer

我有一个包含大量UIButton的项目,使用Xcode4.5、情节提要和ARC。在ios6中进行测试后,一切正常。但在ios5中,UIButton touch-up内部事件不起作用,该操作未被调用。我试着使用触地,它起作用了。然而,我有很多UIButton,我不能一个一个地改变它。更重要的是,触地事件提供了一个很好的经验

我在许多视图控制器中使用了以下代码: 在viewDidLoad中:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
                                                                      action:@selector(dismissKeyboard)];

[self.view addGestureRecognizer:tap];

-(void)dismissKeyboard {
       [aTextField resignFirstResponder];
}
这可能就是原因。我以后再查。但它在ios6中工作。
你知道怎么了吗?非常感谢

我也有同样的问题。 这是因为当您注册的手势识别器捕获事件时,iOS5中的触摸事件被阻止

有两种解决办法

一:

1) 在视图中添加新视图。它应该与按钮具有相同的级别。按钮的优先级应高于新视图

2) 将“addGestureRecognizer”的调用更改为新视图

[self.newView addGestureRecognizer:tap];
二:

1) 实现下面的代码。当点位于按钮中时,应返回“否”

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    CGPoint point = [gestureRecognizer locationInView:self.view];

    NSLog(@"x = %.0f, y = %.0f", point.x, point.y);
    if (CGRectContainsPoint(self.testBtn.layer.frame, point))
        return NO;

    return YES;
}
附言。 您应该导入QuartzCore.h以访问层的属性

#import <QuartzCore/QuartzCore.h>
#导入
只需使用UITapGestureRecognitizer点击上的属性“cancelsTouchesInView”(否)

例如:

UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTap)];
gesture.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:gesture];

覆盖按钮父视图点Inside方法,设置包含按钮的新自定义帧大小。

感谢您的解决方案!这有助于解决问题lot@JarnoV我怎样才能在Xamarin IOS上做到这一点?@Jorgwandersantanaureña,我对Xamarin没有经验。。对不起;)@JarnoV,我做到了:
UITapGestureRecognitizer手势=新建UITapGestureRecognitizer();signate.AddTarget(()=>Console.WriteLine(“Done”);});手势.CancelsTouchesInView=false;按钮查看添加手势识别器(手势);但仍然不工作:/Done,问题是按钮在父视图框架之外。我通过设置新的自定义帧大小,解决了将父视图点覆盖在方法内部的问题