尝试使用 setNeedsDisplay()

Posted

技术标签:

【中文标题】尝试使用 setNeedsDisplay()【英文标题】:Trying to use setNeedsDisplay() 【发布时间】:2016-01-18 14:08:19 【问题描述】:

我正在尝试重新加载 UIView。其实我得到一个错误

无法将“HomeViewController”类型的值转换为预期的参数类型“UIView”

所以这是代码:

UIView.setNeedsDisplay(self)

你有什么想法吗?

【问题讨论】:

self.setNeedsDisplay()? @originaluser2 ,不工作。 “‘HomeViewController’类型的值没有成员‘setNeedsDisplay’” 啊,所以你在UIViewController。所以你想要self.view.setNeedsDisplay() @originaluser2 你也知道如何预测天气吗? :-) 还是未来? @user3441734 如果我愿意的话,也许 ;) 【参考方案1】:

UIView是一个类,setNeedsDisplay()是一个实例函数。

您希望在UIView 实例(而不是类本身)上调用此函数。所以你想要:

self.view.setNeedsDisplay();

setNeedsDisplay() 也不接受任何参数,所以我不知道您为什么要尝试将 self 传递给它。

【讨论】:

我正在尝试从 viewDidAppear 重新加载一堆代码,但我不知道该怎么做。实际上,在 viewDidAppear() 我有代码: UIView.animateWithDuration(0.5, .....)。我想动态更改时间,然后我必须以某种方式重新加载视图。有什么想法吗? "我想动态改变时间"...你的意思是你要输入一个变量吗?听起来您对某些重要概念并没有那么确定。我认为您应该好好阅读有关 Swift 的 Apple 文档,这应该可以帮助您理解大部分关键概念:developer.apple.com/library/ios/documentation/Swift/Conceptual/…。如果您仍然不确定,请随时提出其他问题。

以上是关于尝试使用 setNeedsDisplay()的主要内容,如果未能解决你的问题,请参考以下文章

SetNeedsDisplay 不工作

在 for 循环中调用 setNeedsDisplay

使用 drawRect、setNeedsDisplay 和 layoutSubViews

使用 setNeedsDisplay 更新 UIView 不起作用

即使在使用 view.setNeedsDisplay() 刷新视图后,.isHidden 属性也不反映对视图的更改

重新加载/刷新子视图 - setNeedsDisplay 不起作用