xcode drawrect - UIView边界不反映模拟器中的旋转

时间:2012-11-28 01:24:16

标签: xcode rotation drawrect bounds

我正在使用xcode 4.5.2学习在iOS6中开发。我在drawRect中有这段代码......

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGPoint midPoint;
    midPoint.x = self.bounds.origin.x + self.bounds.size.width/2;
    midPoint.y = self.bounds.origin.y + self.bounds.size.height/2;
... etc

出于某种原因,当我在iphone模拟器中运行时,结果总是

midpoint.x = 160
midpoint.y = 252

无论模拟器(iPhone视网膜屏幕)是处于纵向模式还是旋转为横向模式。结果是我以纵向模式绘制的图形正确地在屏幕上居中,但在横向上向左偏移。

有人可以建议我在哪里开始查看为什么会这样吗?

这个drawRect代码直接来自我写的早期应用程序,它在确定屏幕中点(跨越整个屏幕的UIView)方面正确运行。当我将这个代码(整个类)导入到我当前的程序中时会出现这个问题,该程序正在进入这些UIViews的实例。

感谢。

1 个答案:

答案 0 :(得分:0)

想通了,我想......

看起来由于未知原因(无论如何),当手机旋转时,手机内部的视图没有调整大小以填充新的垂直&水平尺寸。因此,中点坐标始终相同 - 因为视图基本上没有调整大小。在尺寸检查器中,视图的左侧和左侧有支柱。只有,没有弹簧。

添加垂直和&水平弹簧,视图似乎通过旋转调整大小,中点坐标似乎也相应改变。

虽然我已经克服了障碍,但我仍然不清楚为什么我需要在视图中添加弹簧,因为我所遵循的演示似乎不需要这一步。任何建议,将不胜感激。感谢。