iPhone景观,唯一的应用程序视图轴混乱

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)。也许这就是你错过的。

参见:http://developer.apple.com/documentation/graphicsimaging/Conceptual/drawingwithquartz2d/dq_overview/dq_overview.html#//apple_ref/doc/uid/TP30001066-CH202-CJBBAEEC

+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

+1

如果你继续读它说:“虽然石英使用的坐标系统不使用左上角作为原点,对许多Quartz调用来说,这并不是问题,他只有当你需要考虑这些不同的坐标系时,就是使用Quartz自己设置绘图环境。如果你使用Quartz手动绘制东西到屏幕上,那就是答案:) – 2009-05-04 19:52:36