gpt4 book ai didi

ios - 调用 touchescancelled 而不是 touchesended

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:51:52 25 4
gpt4 key购买 nike

我正在尝试在触摸时点亮 View 并在触摸结束时取消点亮。在执行此操作时,我注意到当我从 View 中抬起手指时,- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 方法未被调用,而是 - 在 View 上调用 (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event 方法。这是正常行为吗?我认为如果由于低内存警告等系统问题而取消触摸,则会调用 touchesCancelled。我通过使用 touchesCancelled 完成了我的工作,但我想知道为什么它没有正确调用 touchesEnded。是错误吗?

最佳答案

这不是正常行为。抬起手指时,应调用 touchesEnded。

touchesCancelled 应该在你的 View 在触摸过程中被移除或系统事件发生时被调用(例如,当你的手指触摸屏幕时锁定手机)

请参阅 touchesEnded 的文档和 touchesCancelled .

如果没有您的代码,就无法判断发生了什么。然而,似乎即使您设法按应有的方式调用 touchedEnded,您也会想要对这两种情况做出回应。迅速:

class MyView: UIView {
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
stopGlow()
}

override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
stopGlow()
}

private func stopGlow() {
//Your code here...
}
}

关于ios - 调用 touchescancelled 而不是 touchesended,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10325776/

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