Ios 将UIView旋转到设备方向并调整边界大小

Ios 将UIView旋转到设备方向并调整边界大小,ios,objective-c,uiview,screen-orientation,catransform3d,Ios,Objective C,Uiview,Screen Orientation,Catransform3d,在我的应用程序中,我使用CMMotionManager将ui视图旋转到设备方向。这样做的目的是保持ui视图的水平,无论用户如何围绕z轴旋转视图。想象一下飞机上的水平仪 这确实很有效,但现在我面临着一个真正的挑战。我想在旋转时调整ui视图框架的大小,使其始终完全适合设备屏幕,并保持其纵横比。请看下面这张很棒的图 这里的任何帮助都将不胜感激 假设您的设备屏幕的宽度为W和高度为H,而视图的高度为H和宽度为W。您需要按比例因子缩放视图框架,以确保视图的相对角与屏幕边缘接触。如果旋转角度θ,则需要找到满足

在我的应用程序中,我使用
CMMotionManager
ui视图旋转到设备方向。这样做的目的是保持
ui视图
的水平,无论用户如何围绕z轴旋转视图。想象一下飞机上的水平仪

这确实很有效,但现在我面临着一个真正的挑战。我想在旋转时调整
ui视图
框架的大小,使其始终完全适合设备屏幕,并保持其纵横比。请看下面这张很棒的图

这里的任何帮助都将不胜感激


假设您的设备屏幕的宽度为W和高度为H,而视图的高度为H和宽度为W。您需要按比例因子缩放视图框架,以确保视图的相对角与屏幕边缘接触。如果旋转角度θ,则需要找到满足以下条件的最大比例因子:


缩放因子*(h*sin(θ)+w*cos(θ))观看课程8和9:*为iPhone和iPad开发iOS 7应用程序**这是斯坦福大学的免费课程。只要在谷歌上搜索就可以了。它可以在youtube上找到。