如何将触摸事件传递给另一个对象?

时间:2012-02-20 10:09:44

标签: iphone ios events touch

我引用了名为“Comic Strip”和“Balloon Stickies Free”的应用程序

当我添加一个语音气球并触摸s.b或s.b的尾巴时,它可以正常工作。但当我触摸s.b和s.b尾部周围或之间的尾巴时,它不起作用。照片触摸并在s.b.

下面工作

所以我尝试使用hitTest:withEvent.

当我第一次触摸矩形或tailRect时它会起作用。但是,当我触摸对象中的其他位置,并且我再次触摸矩形或tailRect时,它不起作用。

那么如何修改这段代码呢?我不知道..请帮帮我

- (id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    UIView *hitView = [super hitTest:point withEvent:event];

    if(CGRectContainsPoint(rectangle, currentPt)==YES || CGRectContainsPoint(tailRect, currentPt)==YES)
        return hitView;
    else
        return nil;
}

2 个答案:

答案 0 :(得分:1)

尝试覆盖- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

或者看看Ole Begemann's OBShapedButton。代码很容易修改 使用UIView而不是UIButton。

答案 1 :(得分:0)

请参阅此帖horizontal scrolling。使用此代码,您可以在单个UIWindow类中获取所有触摸事件。你必须写一些代码来适当地传递控制。