我有一个带有 subview 的 VC。在 subview level
我有一个按钮。我希望按钮导致 View 被更新。IBAction
代码在VC中。它目前所做的只是切换 BOOL
值(value)。
回到 subview drawRect: 方法是测试 BOOL
的代码。并相应地更改 View 。
我的观察是,当按下按钮时,IBAction 代码运行,切换 BOOL
,但 drawRect:
方法不会被调用。
我尝试手动调用 drawRect (不好的做法,没有工作)。我尝试调用 setNeedsDisplay 但这也不起作用(无法弄清楚如何引用以编程方式创建的 subview )。
欢迎提出建议。
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
在您更改的 View 上.. 操作系统将在其上调用 drawRect 并自动影响重叠 View 。
在你的情况下,我认为[self.view setNeedsDisplay]
关于ios - 触发drawRect重绘 View 的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15084270/