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