我想重绘一个视图。当我触摸一个按钮时,我的视图必须重新绘制自己。(必须调用 viewWillAppear)
但是视图的 setNeedDisplay 方法不会立即重绘自己。因为我要马上重绘,所以这个方法不适合我。
我试图删除所有 viewController 的视图子视图并将 viewController 的视图更改为其他视图。但这些都不起作用。(不要重画)
我急需你的帮助。
感谢您的阅读。
我认为这里有一些误解。让我们把事情弄清楚:
viewWillAppear:
与视图的绘制无关。setNeedsDisplay
不会立即重绘视图,但我们说的是毫秒。所以这甚至不相关。既然你想viewWillAppear:
被称为我假设你所说的重绘视图真的应该被称为重新布局视图。我假设您所做的viewWillAppear:
是设置您的视图框架,并可能添加/删除和/或显示/隐藏一些视图。
我建议您将该代码移出viewWillAppear:
并移入它自己的方法,该方法将viewWillAppear:
在您点击按钮时被调用。
由于您没有提供您的viewWillAppear:
代码,这一切都是基于假设,所以如果我的假设是错误的,请告诉我并请提供您的“重绘”代码。
如果没有更多详细信息,很难确切知道您需要什么,但我可能建议您查看 UIView::setNeedsDisplay。这反过来会导致您的视图 drawRect: 在您可以更新绘图的地方被调用。
[yourViewName setNeedsDisplay];