1

我想重绘一个视图。当我触摸一个按钮时,我的视图必须重新绘制自己。(必须调用 viewWillAppear)

但是视图的 setNeedDisplay 方法不会立即重绘自己。因为我要马上重绘,所以这个方法不适合我。

我试图删除所有 viewController 的视图子视图并将 viewController 的视图更改为其他视图。但这些都不起作用。(不要重画)

我急需你的帮助。

感谢您的阅读。

4

3 回答 3

4

我认为这里有一些误解。让我们把事情弄清楚:

  1. viewWillAppear:与视图的绘制无关。
  2. 确实setNeedsDisplay不会立即重绘视图,但我们说的是毫秒。所以这甚至不相关。

既然你想viewWillAppear:被称为我假设你所说的重绘视图真的应该被称为重新布局视图。我假设您所做的viewWillAppear:是设置您的视图框架,并可能添加/删除和/或显示/隐藏一些视图。

我建议您将该代码移出viewWillAppear:并移入它自己的方法,该方法将viewWillAppear:在您点击按钮时被调用。

由于您没有提供您的viewWillAppear:代码,这一切都是基于假设,所以如果我的假设是错误的,请告诉我并请提供您的“重绘”代码。

于 2011-04-03T11:46:00.243 回答
1

如果没有更多详细信息,很难确切知道您需要什么,但我可能建议您查看 UIView::setNeedsDisplay。这反过来会导致您的视图 drawRect: 在您可以更新绘图的地方被调用。

于 2011-04-03T04:46:31.073 回答
1
[yourViewName setNeedsDisplay];
于 2013-09-06T09:13:56.173 回答