2012-01-05 58 views
1

我有一个UIView,它有几个子视图可以响应触摸。如果我有一些这样的代码旋转上海华盈的超视图旋转后获取子视图的位置

[CATransaction begin]; 
[CATransaction setDisableActions:true]; 
view.layer.transform = CATransform3DRotate(view.layer.transform, angle, 0, 0, 1); 
[CATransaction commit]; 

...然后我似乎无法响应触摸事件时,发现子视图的正确的位置...任何想法?

+0

使用NSLog(@“%@”,subview.view);找到问题 – Alby 2012-01-05 00:40:51

+0

向我们展示您尝试的内容。 – 2012-01-05 00:46:30

+0

似乎子视图认为他们仍然在同一个地方。我会继续尝试... – 2012-01-05 00:54:35

回答

3

我找到了,我猜测得很好。我需要在UIViews之间转换点以进行贝塞尔命中测试:

-(BOOL)containsPoint:(CGPoint)point 
{ 
    point = [self.superview.superview convertPoint:point toView:self]; 
    return [self.slicePath containsPoint:point]; 
}