0

解決できない問題があります。視点から中心にサブビュー

ビューのサイズが拡大され、アスペクト比が維持され、画面の幅全体を満たすように、アプリケーションのビューを拡大したいと考えています。

私はこの仕事をするいくつかの数学を持っていますが、CGAffineTransformステートメントでこれをどのように適用するか、またはビューを中央に置く方法がわかりません。

ステップ1
スケールビュー:

float scaleFactor = (320/boxWidth); 

self.view.transform = CGAffineTransformMakeScale(scaleFactor, scaleFactor); 

ステップ2
位置、中心だ表示されるようにビュー:

CGRect newFrame = self.view.frame; 

newFrame.x = 20; 
newFrame.y = mainBox.frame.origin.y;  

self.view.frame = newFrame; 

そして、これはあります私は立ち往生している。私はそれが中心に見えるようにビューを配置する方法がわかりません。ここで

は私が達成したいものを実証するための画像です:

example

Bascially、私はブラックボックスが赤の位置とサイズにアニメーション化するように拡張するビューをたいボックス。

私は少しこれに固執しているので、任意の助けに感謝します。

答えて

0

このような場合には、それだけビューの最後のフレームを計算し、アニメーションブロック内に設定する方が簡単です:

CGRect newFrame = self.view.frame; 
newFrame.size.height *= 320.0f/newFrame.size.width; 
newFrame.size.width = 320.0f; 
newFrame.origin.x = 0.0f; 
// Set newFrame.origin.y as desired 

[UIView animateWithDuration: 0.5 animations: ^{ 
    self.view.frame = newFrame; 
}]; 
関連する問題