触发drawRectbutton来重绘视图

我有一个子视图的VC。 在subview level我有一个button。 我希望button导致视图被更新。

IBAction代码在VC中。 它目前所做的只是切换一个BOOL值。

返回子视图drawRect:方法是testingBOOL并相应地更改视图的代码。

我的观察是,当按下button时,IBAction代码运行,切换BOOL ,但drawRect:方法不被调用。

我尝试手动调用drawRect(不好的做法,并没有工作)。 我试图调用setNeedsDisplay,但也没有工作(不知道如何引用子视图,这是创build程序)。

build议欢迎。

IBAction代码是微不足道的,但包括如下:

 - (IBAction)rotateWindowButtonWasPressed:(id)sender { // just flip the boolean here. Need to make the code change in drawRect: in top2View.m if ([myGlobals gWinVertical]) [myGlobals setGWinVertical:NO]; else [myGlobals setGWinVertical:YES]; // Hoping this would force a redraw, but bounds have to change...:( //_top2ViewOutlet.contentMode = UIViewContentModeRedraw; } 

要发出一个drawRect调用,请在您更改的视图上调用setNeedsDisplay ..操作系统将调用drawRect并自动影响重叠视图。

在你的情况下,我想

[self.view setNeedsDisplay]

不知道发生了什么 – 上面有一个答案解决了我的问题,但现在已经不存在了? 无论如何 – 答案是以编程方式创buildbutton,然后我可以在drawRect:所在的子视图级别包含该方法,并使用setNeedsDisplay重新绘制屏幕。 这与使用IB并在VC级别具有IBAction代码相对。