我遇到了一个我似乎无法解决的问题。
我想缩放我的应用程序的视图,以便看起来视图已“放大”以保持其宽高比并填充整个屏幕宽度。
我(想)我有一些数学可以使这项工作,但我不知道如何在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;
这就是我被困住的地方。我不确定如何定位视图以使其看起来居中。
这是一张展示我想要实现的目标的图片:
基本上,我希望缩放视图,以便黑框动画显示红框的位置和大小。
我有点坚持这一点,所以感谢任何帮助。
答案 0 :(得分: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;
}];