gpt4 book ai didi

swift - 检测 UIView 上的 TouchMoved 移动的最快方法?

转载 作者:行者123 更新时间:2023-11-30 14:01:02 25 4
gpt4 key购买 nike

我正在制作一个自定义键盘,它有近 30 个按钮。我正在使用多点触摸事件来检查哪个按钮被选择或触摸。我的方法是检测当前手指位置并与按钮位置进行比较。

但它似乎太慢了,因为我必须使用 for 循环来检查每个按钮的坐标。

是否有更快的方法来检查 1 个 UIView 或 UIButton 上的touchesmoved 触摸?

最佳答案

对于键盘按钮,您需要重写 UIView 方法touchesBegan 和touchesEnded。当触摸进入按钮框架时将调用触摸开始,当触摸退出按钮框架时将调用触摸结束。无需比较坐标。

class MyButton: UIButton {

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

//Button presses

}

override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {

//Button unpresses

}
}

请注意,有一个称为 TouchMoved 的方法,可以在任何 UIView 中重写。任何时候触摸移动都会调用此函数。您不一定需要在触摸在按钮内移动时进行检查,只需在触摸开始和退出按钮时进行检查,因此在这种情况下不应使用 TouchesMoved 方法。

关于swift - 检测 UIView 上的 TouchMoved 移动的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32996583/

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