【问题标题】:use of setNeedsDisplay使用 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的答案都建议第一种方法)

谢谢

【问题讨论】:

    标签: ios 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 在架构之间都是统一的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    相关资源
    最近更新 更多