1

我有一个酒吧,上面有 8 种不同的酒吧UIButton。每个UIButton都选中了“在突出显示时显示触摸”属性。并非所有 8 个按钮都同时显示。

我将它们分成两组,每组 4 个UIButton,并使用UISwipeGestureRecognizer来在两个视图之间切换。

这很好用。

所以,这是我的问题:

当我滑动并触摸其中一个按钮时,我仍然会看到触摸突出显示动画,即使按钮功能没有触发(因为我滑动了)。

在这种情况下(滑动)我不想看到触摸突出显示。我怎样才能禁用它?

4

3 回答 3

1

为了解决这个问题,我用 UILabel 替换了 UIButton 并附加了一个点击处理程序。由于 UILabel 没有高亮触摸,因此不会干扰滑动。

这是一个代码示例:

UITapGestureRecognizer *tapLabel = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
[tapLabel setNumberOfTouchesRequired:1];
[tapLabel setNumberOfTapsRequired:1];
[titleLabel addGestureRecognizer:tapLabel];
titleLabel.userInteractionEnabled = TRUE;

这更像是一种解决方法而不是解决方案,但它可能很有用。

于 2014-10-14T15:52:42.933 回答
1

使用 UIButton 的属性showsTouchWhenHighlighted

例子 :self.btn.showsTouchWhenHighlighted = NO

于 2013-02-25T06:56:37.920 回答
0

我建议你使用 UIImageView 替换按钮

这是示例:

UISwipeGestureRecognizer *swiper = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwip:)] autorelease];
[swiperTopL setDirection:UISwipeGestureRecognizerDirectionLeft];
[imageView addGestureRecognizer:swiper];


UITapGestureRecognizer *tapButton = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(buttonTap:)] autorelease];
[imageView addGestureRecognizer:tapButton];

希望对你有帮助,谢谢!

韦恩

于 2013-02-25T07:03:55.873 回答