【问题标题】:xcode drawrect - UIView bounds not reflecting rotation in simulatorxcode drawrect - UIView 边界不反映模拟器中的旋转
【发布时间】:2012-11-28 01:24:15
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: xcode rotation drawrect bounds


    【解决方案1】:

    想通了,我想...

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 2014-01-24
      • 1970-01-01
      • 2021-08-25
      相关资源
      最近更新 更多