1

UIImageView を含む UIView で catransform3dmakerotation を実行して、回転しているように見せたいです。それは機能しますが、UIViewをスケーリングした後(したがって、その中の画像を引き伸ばした後)、アンカーポイントが間違っています(グラフィックスの中心ではなくなりました)。

アンカーポイントをリセットするには?つまり、本当にリセットします。私はこれを試したので:

[self.view viewWithTag:100].layer.anchorPoint = CGPointMake(0.5, 0.5);

また、加速度計の値が変更されるたびに、再スケーリング後ほぼ 0.1 秒ごとに更新されます。画像は回転していますが、もはや中心ではなく、(0.5,0.5 ではなく、原点 (0,0) で回転しているように見えます)。 )、accelerometer: didAccelerate:メソッドで更新する必要があります。しかし、うまくいきませんでした。再スケーリングのコードは次のとおりです。

UIView* buttView = (UIView*) [self.view viewWithTag:101];
UIImageView* butt = (UIImageView*)[self.view viewWithTag:100];
butt.frame= CGRectMake(butt.frame.origin.x, butt.frame.origin.x, newSize, newSize);
buttView.frame = butt.frame;

ありがとうございました!

4

1 に答える 1

2

変更する前anchorPointに古いフレームを覚えておく必要があり、変更した後はリセットしてください。このような:

CGRect oldFrame = [[self.view viewWithTag:100] frame];
[self.view viewWithTag:100].layer.anchorPoint = CGPointMake(0.5, 0.5);
[[self.view viewWithTag:100] setFrame:oldFrame];
于 2011-06-19T13:01:05.853 に答える