使用 setNeedsDisplay
Posted
技术标签:
【中文标题】使用 setNeedsDisplay【英文标题】:use of setNeedsDisplay 【发布时间】:2013-08-06 20:03:50 【问题描述】:我对 setNeedsDisplay
更新 UIView
的不同用法感到困惑?当我尝试使用时,我确实收到了一条错误消息(“No visible @interface for viewcontroller declares the selector setNeedsDisplay
”):
[self.view setNeedsDisplay:YES];
我发现我必须忽略该参数才能使其适用于 UIViews:
[self.view setNeedsDisplay]
为什么这里不需要更新 UIView 的参数? (很多关于如何使用setNeedsDisplay
的答案都建议第一种方法)
谢谢
【问题讨论】:
【参考方案1】:区分大小写很重要,顺便说一句
将其更改为:
[self.view setNeedsDisplay];
正如您所发现的,您在 UIView 对象上调用“setNeedsDisplay
”,而不是 UIViewController(这是您看到的“No visible @interface for viewcontroller declares the selector 'setNeedsDisplay'
”错误)。
The place where "setNeedsDisplay:
" takes a YES or NO parameter is on the Macintosh side,在 NSView 中。
【讨论】:
我摆脱了错误,谢谢。是否有理由不需要 ios 中的参数,或者它只是 iOS 方法的工作方式? That's just the way it's defined in iOS。我的猜测是,您查看了 Apple 网站上“setNeedsDisplay
”的文档,看到了一个参数,但没有注意到它是针对 NSView 而不是 UIView。并且不要感觉不好。我有时也会犯这个错误(但编译器总会抓住我)。并非所有 API 在架构之间都是统一的。以上是关于使用 setNeedsDisplay的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)