gpt4 book ai didi

ios - 多个 View 处理的触摸事件

转载 作者:技术小花猫 更新时间:2023-10-29 11:19:05 31 4
gpt4 key购买 nike

我在 UITableView 之上有一个 UIView 的子类。我正在使用 UITableView 来显示一些数据,同时,我想叠加一个跟随手指的动画(例如,留下轨迹)。

如果我做对了,我需要由 UIView 子类和 UITableView 同时处理触摸事件。我怎样才能做到这一点?是否有可能在 UIView 子类上触发 touchesMoved,然后在 UITableView 上触发?

非常感谢您的帮助。

最佳答案

我解决这个问题的方法不是那么干净,但它有效。如果有更好的方法,请告诉我。

我已经为我的自定义 UIView 重写了 hitTest,以便它将触摸指向下面的 UITableView。然后在 UITableView 中,我通过 touchesBegantouchesMoved 等处理手势。我还调用了 touchesBeganUIView 上。

以这种方式,触摸由两个 View 处理。为什么我没有做相反的事情(让 UIViewtouchesBegan 调用 UITableViewtouchesBegan ) 是 UITableView 上的手势识别器将不起作用。

UIView 子类' hitTest

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
// tview is the UITableView subclass instance
CGPoint tViewHit = [tView convertPoint:point fromView:self];
if ([tView pointInside:tViewHit withEvent:event]) return tView;

return [super hitTest:point withEvent:event];
}

UITableView 子类的 touchesBegan

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:touch.view];
// ....

// view is the UIView's subclass instance
[view touchesBegan:touches withEvent:event];
}

关于ios - 多个 View 处理的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8370610/

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