我想重绘一个视图。 当我触摸按钮时,我的视图必须重绘。 (必须调用viewWillAppear)
但是view的setNeedDisplay方法不会立即重绘。 因为我必须立即重绘它,所以这种方法不适合我。
我试图删除所有viewController的视图子视图并更改viewController 查看其他视图。 但这些都行不通。 (不要重绘)
我急需你的帮助。
感谢您的阅读。
答案 0 :(得分:4)
我认为这里存在一些误解。让我们把事情做好:
viewWillAppear:
与视图的绘制无关。setNeedsDisplay
确实不会立即重绘视图,但我们正在谈论毫秒。所以这甚至不相关。由于你想要viewWillAppear:
被调用,我假设你所谓的重绘视图真的应该被称为中继视图。我假设你在viewWillAppear:
中所做的是设置你的视图的帧,并可能添加/删除和/或显示/隐藏一些视图。
我建议您将该代码移出viewWillAppear:
并将其移入自己的方法,该方法将从viewWillAppear:
调用,并点按该按钮。
由于您未提供viewWillAppear:
代码,这完全取决于假设,因此如果我的假设有误,请告诉我,并请提供您的“重绘”代码。
答案 1 :(得分:1)
如果没有更多细节,很难确切知道你需要什么,但我建议你看看UIView :: setNeedsDisplay。这将导致您的视图drawRect:被调用,您可以在其中更新绘图。