2010-05-10 44 views
0

也许有更好的方法来设置这个,所以我愿意提出建议。如何更新次要视图?

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

问题:尽管当应用程序启动时(如在调试器中跟踪),drawRect可以正常工作,但当UIImageView更改时,我在更新@synthesize之后在第二个视图的实例变量上调用“setNeedsDisplay” 'd数组,但drawRect不会被调用。

我认为它与实例有关。我不认为线程会成为一个问题。我只想根据也显示的图像在画面的单独区域绘制。

+0

我对线程知之甚少。我没有创建任何。我尝试setNeedsDisplayOn主线无济于事。我没有发布代码,因为我正在寻找一个概念性的答案,而不是“为什么这行代码不起作用” - 如果我有道理...... P.S.我会看一些以前的答案。我不知道这个“接受”的概念。 – 2010-05-10 18:58:14

+0

在概念上听起来不太错。也许你应该按照建议发布一些代码。 – Andiih 2010-05-10 19:51:15

回答

0

OK,对于那些谁看到这一点,并有一个类似的问题...

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

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