2011-07-07 11 views
0

私はこのコードを使用して、押されたレイヤーを探しています。CALayerをタッチ位置から別の方向に検索していますか?

- (CALayer *)layerForTouch:(UITouch *)touch { 
    UIView *view = self.view; 

    CGPoint location = [touch locationInView:view]; 
    location = [view convertPoint:location toView:nil]; 

    CALayer *hitPresentationLayer = [view.layer.presentationLayer hitTest:location]; 
    if (hitPresentationLayer) { 
     return hitPresentationLayer.modelLayer; 
    } 

    return nil; 
} 

すべて正常に動作します。通常のポートレートモードです。

問題は、ビューを回転させて画面の上半分を押すと、位置は313,543に戻ります。横方向の画面の上部にあるので、Xの値は0にする必要がありますユーザーが現在どの向きにいるかによって、このコードのようなタッチポイントを作り直すことはできないようです。

向きによって実際のタッチポイントを取得する方法はありますか?

答えて

1

私はポップオーバーで同様の問題があったと私は行削除:

location = [view convertPoint:location toView:nil]; 

をし、それは私のために適切に働いていました。

関連する問題