繁体   English   中英

UIButton事件'Touch Up Inside'无效。 'Touch Down'工作得很好

[英]UIButton event 'Touch Up Inside' not working. 'Touch Down' works fine

我在UIView中有一个UIButton,它位于UIViewController中,我已经从.xib文件中分配和输入。

当将IBAction挂钩到UIButton的“Touch Down”事件时,它会正确触发。 但如果我把它连接到'Touch Up Inside'事件,它就不会响应。

其他事件也不起作用。 '触摸拖动输入','触摸拖动退出','触摸外部'等。仅触摸向下。

有谁知道为什么会这样?


该按钮是视图控制器中的简单圆角矩形按钮。 我已经加载了视图控制器:

-(void) pushNewViewController
{
    MyViewController* newViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
    [self.view addSubview:newViewController.view];
    [newViewController release];
}

我在IB中将此按钮添加到圆形rect按钮到MyViewController。 我创建了以下IBActions:

-(IBAction) buttonTouchDown:(id)sender
{
    NSLog(@"Button Touch Down Event Fired.");
}

-(IBAction) buttonTouchUpInside:(id)sender
{
    NSLog(@"Button Touch Up Inside Event Fired.");
}

在IB I菜单中单击按钮并将Touch Down插座拖动到MyViewController并选择buttonTouchDown:。 保存了IB xib。

当我运行并测试按钮并获得“Button Touch Down Event Fired”日志消息时。

但是当我回到IB并将Action更改为Touch Up Inside并将其连接到buttonTouchUpInside:IBAction并保存。 我再次测试,没有得到回应。

此致,Rich

我很抱歉迟到但我有完全相同的问题。 在我的例子中,它是一个分配给父视图的UITapGestureRecognizer 因此,检查识别器也是个好主意。

你正在发布newViewController。

将newViewController.view添加为子视图将保留视图,而newViewController对象的保留计数为0。

你提到了储蓄; 在进行更改后,您是否保存了xib和MyViewController文件? 通常当这样的事情停止为我工作时,我发现我没有保存IB中的xib或XCode中的类文件。

您是否在MyViewController的代码中实现了任何触摸事件处理程序?

看起来您的UIButton只接收touchesBegan事件,并且事件在接收touchesEnded之前被某些东西取消。

像UIScrollView这样的东西通常会在需要转发到它的子视图的触摸和应该由它自己处理的拖动之间做出决定。

大声笑这是一个愚蠢的解决方案,但在xib我把它连接到buttonTouchUp外面,这导致了问题。 也许这会有所帮助:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM