0
私はCALayerに画像を持っています(CALayersのcontentsプロパティを使用しています)。 CALayerには、スケールと回転に使用できる変換プロパティがあります。 CALayerが静止しているときに、私は難なくその変換を使うことができます。回転して拡大縮小したCALayerをドラッグするにはどうすればいいですか?
しかし、CALayer(mouseDragged:(NSEvent *)theEventを使用して)をドラッグしようとすると、すべてが離れてしまいます(イメージがドラッグされるとフラットになります)。
-(void)mouseDragged:(NSEvent *)theEvent {
CGPoint loc = [self convertPoint:theEvent.locationInWindow fromView:nil];
CGPoint deltaLoc = ccpSub(loc, downLoc); // subtract two points
CGPoint newPos = ccpAdd(startPos, deltaLoc); // adds two points
[layer changePosition:newPos];
...
}
層
-(void)changePosition:(CGPoint)newPos {
//prevent unintended animation actions
self.actions = @{@"position": [NSNull null]};
CGSize size = self.frame.size;
CGRect newRect = CGRectMake(newPos.x, newPos.y, size.width, size.height);
self.frame = newRect;
}
の問題IドラッグとしてIが動的のCALayerの位置を変更するのCALayerのフレームを使用することであるが、回転角度がゼロでない場合、その後のフレームでありますもはやx軸とy軸に平行ではありません。この問題を解決する最良の方法は何ですか?
mousedraggedでコードを表示します。 – GeneCode