iPhone景观,唯一的应用程序视图轴混乱
问题描述:
使用这里的信息:iPhone Landscape-Only Utility-Template Application我能够推出,使用和维护我的看法,因为只有景观。但是,我对这个轴感到困惑。iPhone景观,唯一的应用程序视图轴混乱
绝对坐标轴的行为与预期相同,意思是(0,0)是左上角,(240,0)是上方中心,(0,320)是左下角等。但是,当我尝试做与我正在绘制的视图相关的计算我发现x,y的取向就好像纵向左上角是原点。所以得出的中心点东西在我的视图控制器我需要做的:
CGPoint center = CGPointMake(self.view.center.y, self.view.center.x);
我认为这是由于事实的UIView我的控制器引用self.view是给它相对于它的值是包框架,这意味着在纵向模式下左上角是轴原点的窗口。
有没有一些简单的方法来解释这个,我失踪了?
文件表明,变换属性正是我期待的,但是,我在这里遇到了进一步的混乱。有3个涉及基本属性:
- 框架
- 界
- 中心
如果我这样做是viewDidLoad中:
// calculate new center point
CGFloat x = self.view.bounds.size.width/2.0;
CGFloat y = self.view.bounds.size.height/2.0;
CGPoint center = CGPointMake(y, x);
// set the new center point
self.view.center = center;
// Rotate the view 90 degrees counter clockwise around the new center point.
CGAffineTransform transform = self.view.transform;
transform = CGAffineTransformRotate(transform, -(M_PI/2.0));
self.view.transform = transform;
现在根据参考文档,如果变换未设置为身份变换self.view.frame未定义。所以我应该与界限和中心合作。
self.view.center现在是正确的,因为我将它设置为我希望它是。 self.view.bounds显示不变。 self.view.frame似乎正是我想要的,但如上所述,参考声明它是无效的。
因此,虽然我能得到什么,我认为是正确的数字,我怕我忽视的东西关键后,这将成为麻烦。
谢谢。
答
石英2D中,坐标系统具有其在图形的左下角,而不是在左上角原点(0,0)。也许这就是你错过的。
谢谢你的回答,但根据对视图几何的iPhone应用程序开发指南部分:http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide /WindowsandViews/WindowsandViews.html#//apple_ref/doc/uid/TP40007072-CH8-SW5你指出哪些是没有问题的 – 2009-04-24 23:46:30
如果你继续读它说:“虽然石英使用的坐标系统不使用左上角作为原点,对许多Quartz调用来说,这并不是问题,他只有当你需要考虑这些不同的坐标系时,就是使用Quartz自己设置绘图环境。如果你使用Quartz手动绘制东西到屏幕上,那就是答案:) – 2009-05-04 19:52:36