- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Mac OS X 应用程序中有一个可以自行绘制的 NSView
。当我准备好发生这种情况时,我通过电话请求:
[self.imageRenderedView setNeedsDisplay:YES];
我的问题是,这个调用会阻塞吗?也就是说,它是同步的吗?我可以假设在执行后续语句时绘图已经发生吗?这个假设似乎对我有用,但我对此感到有点不安全。
最佳答案
setNeedsDisplay:
调用仅通过设置标记 View 需要显示 View 对象中的标志。因此它返回得非常快,但是当该方法返回时绘图尚未发生。
来自documentation :
Whenever the data or state used for drawing a view object changes, the view should be sent a
setNeedsDisplay:
message.NSView
objects marked as needing display are automatically redisplayed on each pass through the application’s event loop. (View objects that need to redisplay before the event loop comes around can of course immediately be sent the appropriatedisplay...
method.)
关于objective-c - 是-[NSView setNeedsDisplay :] a synchronous call?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18047104/
在我的代码中,我想要“动画”绘制一条线的延迟,因此在向 View 添加新线后,我调用 setNeedsDisplay - 一次就可以正常工作。 在drawRect方法中,我绘制线条并调用线条的方法来增
我正在尝试使用 MonoTouch 创建自定义 ProgressBar。我创建了一个用计时器重新绘制线条的类。我的问题是,当调用 SetNeedsDisplay 时, View 不会自行重绘。仅当提供
我注意到 Mac OS X 10.7 上基于 Cocoa 的应用程序存在一个奇怪的问题。由于某种原因(这里并不重要),有时我必须在自定义 View 的 drawRect 方法之外进行绘制。 我必须在我
我正在运行一个 Parse 程序,该程序获取数据并使用“findObjectsInBackgroundWithBlock”从中创建对象。完成后,我更新 self ,然后调用“[self.tableVi
每次使用 setNeedsDisplay 调用 drawRect 时,我都会显示大量图像。问题是导致滞后导致每次我调用 dracRect 时,我都会重新绘制每个图像(数千张)。 有没有办法不重绘所有图
下面的方法是在非主线程上调用的,具体来说,是在录音音频队列回调中 - (void)myMethod { //... dispatch_async(dispatch_get_main_queue(),
我最近开始学习在 View 上绘制核心图形,但每次调用 setNeedsDisplay 时,该方法都会运行,但不会触发 drawRect。在我的项目中,我在 View Controller 上有一个
我有一个自定义 View ,其中绘制了一个钢琴键盘。每个键都作为单独的调用绘制,因此我只能绘制需要重绘的键。该 View 支持多点触控,因此可以同时按住多个键。 每个键的绘制成本都有些高,因此每当在
在我的程序中,我使用 slider 更改当前所选颜色的 alpha 级别。 当 slider 更改其值时,它调用我的 setColor() 方法来更新使用新的 alpha 值更新当前颜色并更新显示当前
我正在 UIContainerView 中创建 subview ,它属于下面描述的类。这些值正确地打印到终端窗口,但实际上并没有显示在我定义的 subview 中。我认为 setNeedsDispla
我正在尝试重新加载 UIView。实际上我得到一个错误 Cannot convert value of type 'HomeViewController' to expected argument t
我对 setNeedsDisplay 更新 UIView 的不同用法感到困惑?当我尝试使用: [self.view setNeedsDisplay:YES]; 我发现我必须忽略参数才能使其适用于 UI
这里有人知道 setNeedsDisplay 是否会立即调用 drawRect 并立即更新屏幕吗?或者它只是一个排队的请求?谢谢。 最佳答案 View 直到下一个绘图周期才真正重绘。这只是通知系统应该
我看到很多与此问题相关的线程,但没有一个解决我的问题(我认为)。 我的情况应该很简单,我的 Controller 中有一个自定义 UIView,我在我的 Controller 中使用了 [self.m
使用drawRect、setNeedsDisplay和layoutSubViews等方法有什么基本规则吗?我相信它们会对应用程序性能产生不利影响。这些消息有任何首选替代方案吗? 最佳答案 虽然这不是
我有一个更新 View 的后台任务。该任务调用 -setNeedsDisplay 来绘制 View 。 这有效: - (void) drawChangesTask; { NSAutorelea
我的 ui 结构类似于 NSWindow -> NSViewController -> NSView(parent) -> NSView(target view)。目标 View 是从 XIB 文件中
我正在尝试制作一个非常简单的绘画应用程序(Cocoa)。在我的自定义 View 中,我有我的drawRect:方法,它在光标位置创建一个矩形: - (void)drawRect:(NSRect)rec
我有一个仅绘制的 UIView 派生 View 一次并且从未更新。 调用[self setNeedsDisplay]没有效果。什么可能导致这种情况? 绘图代码是否在无关紧要 drawRect: , 或
我正在尝试创建一个循环进度指示器。不幸的是,仅从 setNeedsDisplay 第一次和最后一次调用 drawRect 例程,它不会创建我正在寻找的渐变填充模式。我创建了一个 UIView 子类,在
我是一名优秀的程序员,十分优秀!