2012-01-05 53 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]; 
}