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; 
}];