你如何更新次要视图?

时间:2010-05-10 16:26:28

标签: iphone uiview uiimageview setneedsdisplayinrect

也许有更好的方法来设置它,所以我愿意接受建议。

但这就是我正在做的事情。我有一个主要的UIView。最重要的是,我有一个UIImageView和另一个UIView。当UIImageView发生变化时,我想更改第二个UIView。所以我有一个类,IB对象的类型设置为类。在该类的.m中是一个绘制一些矩形的drawRect方法。同样在.m中是一个合成的NSMutableArray属性。我在主视图的控制器中创建了该类的实例。

问题:尽管当UIImageView发生变化时应用程序启动(在调试器中跟踪)时drawRect正常工作,但在更新@synthesize之后,我在第二个视图的实例变量上调用了“setNeedsDisplay” d数组但是没有调用drawRect。

我认为这与实例有关。我不认为线程会成为问题。我只想根据同时显示的图像在屏幕的单独区域中绘图。

1 个答案:

答案 0 :(得分:0)

好的,对于那些看到这个并且遇到类似问题的人......

这确实是一个“实例”问题。我在IB中创建了辅助UIView。我想因为我在那里建立了连接,代码在启动时运行良好。

修复方法是以编程方式创建子视图并将其添加到主视图中。那样只有一个例子。更新@ synthesize'd数组变量以及随后对drawRect的调用(通过setNeedsDisplay)转到了辅助视图的一个实例,即我作为子视图添加到主视图的实例。问题解决了。