ios – 由多个视图处理的触摸事件

前端之家收集整理的这篇文章主要介绍了ios – 由多个视图处理的触摸事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在UITableView上有一个UIView的子类.我正在使用UITableView来显示一些数据,同时,我想覆盖手指后面的动画(例如,留下一条线索).

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

非常感谢你的帮助.

解决方法

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

我已经为我的自定义UIView覆盖了hitTest,以便它将触摸指向下面的UITableView.然后在UITableView中我通过touchesBegan,touchesMoved等处理手势.我在UIView上也调用了touchesBegan.

这样,触摸由两个视图处理.
之所以我没有反过来(让UIView的touchesBegan调用UITableView的touchesBegan)是因为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];
}
原文链接:https://www.f2er.com/iOS/334570.html

猜你在找的iOS相关文章