我有一个 320x460(标准 iPhone 屏幕)的视图,我想绘制它,就好像它处于横向模式一样,尽管手机不是这样定向的。这似乎是一个简单的任务,我试图通过创建一个大小为 460x320 的子视图来解决,然后通过设置视图转换将其旋转 90 度。这工作,除了旋转的视图没有正确居中。为了“解决”这个问题,我添加了一个翻译转换,最终看起来像这样:
CGAffineTransform rotate = CGAffineTransformMakeRotation(M_PI / 2.0);
[landscapeView setTransform: CGAffineTransformTranslate(rotate, 70.0, 70.0)];
我不介意进行一些调整转换,但我不知道神奇数字 70 的来源。我只是玩弄它,直到边缘正确匹配。我怎样才能摆脱它们,要么通过消除平移转换,要么通过与高度和宽度相关的一些有意义的数学推导数字?