【问题标题】:setNeedsDisplay works on iPhone but not on iPadsetNeedsDisplay 适用于 iPhone 但不适用于 iPad
【发布时间】:2011-11-04 19:36:13
【问题描述】:

有问题的视图是在 IB 中的根视图上创建的,并连接到 rootViewController 中的类方法。在视图的类方法中,我重写了 drawRect 来绘制它的内容。用户更改一些参数后,我从 rootViewController 对视图调用 setNeedsDisplay。

在 iPhone 上可以正常工作。然而,在 iPad 上,类方法中的 drawRect 不会被调用。

我怀疑这与绘图周期有关。在 iPhone 上,用户用来更改参数的视图被推送到相关视图上方的屏幕上。在 iPad 上,这个视图被添加到上面的根视图中,而不是结束,有问题的视图。所以当用于更改参数的视图关闭时,与 iPhone 不同的是,不会生成绘图周期,因此无效的视图不会更新。

我被困住了。任何帮助将不胜感激。

【问题讨论】:

    标签: iphone ipad setneedsdisplay


    【解决方案1】:

    发现问题...

    我发现在 iPad 的根视图控制器使用的 xib 中,有问题的 UIView 对象的接线有些损坏。当我将鼠标悬停在 .h 文件中它的 iIBOutlet 变量的项目符号上时,将选择 xib 中其他地方的 UISegmentedControl 而不是预期的 UIView。右键单击 UISegmentedControl 未显示链接存在。我能够修复它的唯一方法是从两个对象上移除所有接线并正确重新接线。调用 setNeedsDisplay 现在可以工作了。正如预期的那样,在 iPad 上就像在 iPhone 上一样。

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      相关资源
      最近更新 更多