2011-06-19 1 views
1

UIImageViewを含むUIView上でcatransform3dmakerotationを実行して、回転しているように見えます。それは動作しますが、アンカーポイントはUIViewのサイズを変更した後(つまり画像を拡大した後ではなく)間違っています(グラフィックスの中心にはありません)。UIImageViewを使ってUIViewを拡大した後にアンカーポイントをリセットする方法は?

アンカーポイントをリセットするにはどうすればよいですか?私は本当にそれをリセットすることを意味します。

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

と画像が回転しますが、もはや、もはや中心に再スケーリングした後、ほとんどすべての0.1秒を更新している加速度計の値が変更されるたびに、、、それはその起源に回転しているように思わない:私はこれを試してみましたので、 (0,0)の代わりに、(0.5,0.5)の値を更新する必要があります。加速度計: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; 

ありがとうございます!

+0

ビュートランスフォームを変更すると、フレームプロパティ(代わりにセンターと境界を設定)にアクセスすることはできません。 –

答えて

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]; 
+0

ありがとうございました。試してみましょう! –

関連する問題