setNeedsDisplay适用于iPhone但不适用于iPad

时间:2011-11-04 19:36:13

标签: iphone ipad setneedsdisplay

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

在iPhone上运行正常。但是,在iPad上,类方法中的drawRect不会被调用。

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

我被困住了。任何帮助都会得到赞赏。

1 个答案:

答案 0 :(得分:1)

发现问题......

我发现在根视图控制器用于iPad的xib中,有问题的UIView对象的连线是一些损坏的。当我在.h文件中的iIBOutlet变量的子弹上盘旋时,将选择xib中其他位置的UISegmentedControl而不是预期的UIView。右键单击UISegmentedControl并未显示该链接存在。我能够解决它的唯一方法是从两个对象中删除所有接线并正确地重新连接它们。现在可以调用setNeedsDisplay。正如预期的那样,在iPad上就像在iPhone上一样。

相关问题