gpt4 book ai didi

iphone - “保持” UIButton 行为 - `Touch Cancelled` 控制状态阻止进一步的控制状态

转载 作者:行者123 更新时间:2023-12-01 18:03:11 26 4
gpt4 key购买 nike

我在 subview View 上有一个按钮(为了说话, subview 是一个红色方 block ),当用户按住按钮时,红色方 block 动画半透明。

我将按钮连接到此方法:

-(IBAction)peekToggle:(id)sendr{        

NSLog(@"TOGGLE");

if(self.view.alpha ==1)self.view.alpha = 0.1;
else self.view.alpha = 1;
}

通过行为: touch up inside , touch up outsidetouch down .因此,当我按住按钮时,红色框变成半透明的,当我松开手指时,它又恢复为不透明。
这最初工作正常,但是如果我按住按钮超过 1 秒,按钮不会注册 touch up (松开手指)。

注意:我在父 View ( subview 的父不是按钮的父)上有一个 longPressGestureRecogniser,但它没有被触发(预期)。

我很确定我长按注册为 touch cancel 的按钮然后使修饰事件无效。

我该如何预防/解决这个问题?

我可以停止 touch Cancel开火? (即使我没有注册控制状态,这个事件似乎也会触发)或在 touch Cancel事件,告诉按钮保持/开始注册事件?

最佳答案

解决方案:

完全删除了 IBActions 并添加了 UILongPressGestureRecognizer按钮 最短持续时间。

    UILongPressGestureRecognizer * recognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];    
recognizer.minimumPressDuration = 0.1;
[self.peekButton.view addGestureRecognizer:recognizer];
[recognizer release];

然后在 gr 的选择器中,读取 gr 的状态:
    - (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer{ 

//1 = start
if(gestureRecognizer.state==1 || gestureRecognizer.state==3)[self peekToggle];
//3=end
}

关于iphone - “保持” UIButton 行为 - `Touch Cancelled` 控制状态阻止进一步的控制状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5003719/

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