2012-02-02 18 views
0

私は、水平線のように見えるように縦に倒したいと思う丸いイメージを持っています。私は、これは中央にレイヤーのアンカーポイントを設定して、= 1iOS - 画像を垂直方向につぶす

[self.imageToSquish.layer setAnchorPoint:CGPointMake(0.5, 0.5)]; 

CGRect newFrame = CGRectMake(self.imageToSquish.frame.origin.x, self.imageToSquish.frame.origin.y, self.imageToSquish.frame.size.width, 1); 
[UIView animateWithDuration:3 
       animations:^{self.imageToSquish.frame = newFrame;} 
       completion:nil]; 

フレームの高さとUIViewAnimationを介してフレームをアニメーション化することにより、働くだろうと思ったが、画像は上に向かっての代わりに、中心付近縮みます。

答えて

2

元の位置の左上に、開始位置と同じ位置にフレームがあります。あなたは、おそらく半分の画像の高さを追加し、より多くのこのような何かをしたい:

CGRect newFrame = CGRectMake(self.imageToSquish.frame.origin.x, self.imageToSquish.frame.origin.y + self.imageToSquish.frame.size.height/2, self.imageToSquish.frame.size.width, 1); 

また-、より効率的に、あなたが代わりにそのフレームをいじりのCGAffineTransformMakeScale(1, 0.01)、たとえば、に画像ビューのtransformプロパティを設定することができます。これは画像の中央に配置され、変換をCGAffineTransformIdentityに設定することで簡単に元に戻すことができます。

+0

はい、CGAffineTransformがうまく機能します。ありがとう。 – soleil

関連する問題