我有一个酒吧,上面有 8 种不同的酒吧UIButton
。每个UIButton
都选中了“在突出显示时显示触摸”属性。并非所有 8 个按钮都同时显示。
我将它们分成两组,每组 4 个UIButton
,并使用UISwipeGestureRecognizer
来在两个视图之间切换。
这很好用。
所以,这是我的问题:
当我滑动并触摸其中一个按钮时,我仍然会看到触摸突出显示动画,即使按钮功能没有触发(因为我滑动了)。
在这种情况下(滑动)我不想看到触摸突出显示。我怎样才能禁用它?
我有一个酒吧,上面有 8 种不同的酒吧UIButton
。每个UIButton
都选中了“在突出显示时显示触摸”属性。并非所有 8 个按钮都同时显示。
我将它们分成两组,每组 4 个UIButton
,并使用UISwipeGestureRecognizer
来在两个视图之间切换。
这很好用。
所以,这是我的问题:
当我滑动并触摸其中一个按钮时,我仍然会看到触摸突出显示动画,即使按钮功能没有触发(因为我滑动了)。
在这种情况下(滑动)我不想看到触摸突出显示。我怎样才能禁用它?
为了解决这个问题,我用 UILabel 替换了 UIButton 并附加了一个点击处理程序。由于 UILabel 没有高亮触摸,因此不会干扰滑动。
这是一个代码示例:
UITapGestureRecognizer *tapLabel = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
[tapLabel setNumberOfTouchesRequired:1];
[tapLabel setNumberOfTapsRequired:1];
[titleLabel addGestureRecognizer:tapLabel];
titleLabel.userInteractionEnabled = TRUE;
这更像是一种解决方法而不是解决方案,但它可能很有用。
使用 UIButton 的属性showsTouchWhenHighlighted
。
例子 :self.btn.showsTouchWhenHighlighted = NO
我建议你使用 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];
希望对你有帮助,谢谢!
韦恩