gpt4 book ai didi

iphone - UILongPressGestureRecognizer 关闭 UIButton 高亮显示

转载 作者:IT王子 更新时间:2023-10-29 08:10:46 25 4
gpt4 key购买 nike

我将 UILongPressGestureRecognizer 添加到 UIButton。当我按下 UIButton 时,它会按预期突出显示。但是,当调用 UILongPressGestureRecognizer 选择器时,突出显示将关闭。

    UILongPressGestureRecognizer *longpressGesture = 
[[UILongPressGestureRecognizer alloc] initWithTarget:self
action:@selector(longPressHandler:)];
longpressGesture.minimumPressDuration = 5;
[longpressGesture setDelegate:self];
[self.myUIButton addGestureRecognizer:longpressGesture];
[longpressGesture release];

- (void)longPressHandler:(UILongPressGestureRecognizer *)gestureRecognizer {
NSLog(@"longPressHandler");
}

在上面的示例中,选择器在按住按钮 5 秒后被调用。该按钮在调用选择器之前突出显示,但在调用选择器时不突出显示,即使我仍在按下按钮。

谁能解释为什么会发生这种情况,以及如何避免这种情况?我希望按钮在按下时始终保持突出显示。谢谢。

最佳答案

经过进一步研究,我发现这是由于 Gesture Recognizers 的默认行为,一旦识别出手势,就会取消层次结构中的触摸。因此,一旦 Gesture Recognizer 识别出手势,它就会取消对 UI Button 的触摸,然后取消突出显示,因为它不再有触摸事件。

可以使用 cancelsTouchesInView 属性更改此行为

longpressGesture.cancelsTouchesInView = NO;

将此设置为 NO 会将触摸传递到响应链。

关于iphone - UILongPressGestureRecognizer 关闭 UIButton 高亮显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5009135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com