1

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

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

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

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

4

1 回答 1

1

发现问题...

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

于 2011-11-08T01:39:14.297 回答