0

我正在使用 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)方面运行正常。当我将这段代码(整个类)导入到我当前的程序中时,就会出现这个问题,该程序正在进入这些 UIView 的实例中。

谢谢。

4

1 回答 1

0

想通了,我想...

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

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

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

于 2012-11-28T20:05:24.007 回答