用于触发drawRect以重绘视图的按钮

Ton*_*ony 1 xcode drawrect ibaction ios setneedsdisplay

我有一个带有子视图的VC.在subview level我有一个按钮.我希望按钮导致视图更新.

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

回到子视图中drawRect:方法是相应地测试BOOL和更改视图的代码.

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

我尝试手动调用drawRect(不是很好的做法而且没有用).我尝试调用setNeedsDisplay,但这也没有用(无法弄清楚如何引用以编程方式创建的子视图).

建议欢迎.

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;
}
Run Code Online (Sandbox Code Playgroud)

Dai*_*jan 10

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

在你的情况下,我想

[self.view setNeedsDisplay]