问题标签 [setneedsdisplay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
55 浏览

cocoa - NSResponder 方法只调用 setNeedsDisplay

我有一个 openGl 视图的子类。在其中一种方法中,我设置了一个标志来绘制黑色或白色背景。在方法结束时,我调用 setNeedsDisplay。这永远不会被调用!我在 mouseDownEvent 中也有一个 setNeedsDisplay。当我单击视图时,它会调用它!我的背景改变了颜色。有任何想法吗?这是代码。

在 openGL 视图中

在应用程序委托中

0 投票
0 回答
133 浏览

ios - 无法更新 uibutton 标签

我正在使用自定义MZFormSheetController来使用自定义“警报视图”。当我按下它时,我有一个按钮,它会打开MZFormSheetController并允许我从 中选择此按钮的特定标题UIPickerView。当我从选择器中选择标题时,它被发送到viewController包含按钮的setNeedsDisplay

我想用从pickerView. 我写了代码,但按钮的标题没有更新..

在按钮的viewController, 按钮的动作:

viewDidLoad

CountriesPickerViewController.m

预期的事情是countrySelect按钮在selectedCountryIndex2不等于 0 时更改其标题,但这从未发生过,尽管标题已成功传递并且我得到了它NSLog

0 投票
1 回答
129 浏览

ios - iOS:为什么我需要在 NSURLConnection sendAsynchronousRequest 之后使用 sleep(1)?

我想在屏幕上显示我从互联网上获取的图像。我已经使用 NSURLConnection 创建了一个异步调用来获取数据,并且在响应块中,我调用了代码以将其分配给 UIImage 对象。

我的问题是为什么我需要在块执行后调用 sleep(1) ?如果我不调用它,那么我的图像不会绘制在屏幕上。这是实现这一目标的另一种更优雅的方式吗?

0 投票
1 回答
156 浏览

objective-c - setNeedsDisplay:YES 不绘制

所以我在现有窗口中绘制自定义视图时遇到问题。我有一个名为的自定义类GraphView,用于在视图上绘制值图。该图每秒都会获得传递的变量,并且应该通过 重绘setNeedsDisplay:YES。我可以让这个相同的类在独立的 xCode 项目中工作,但为了让它工作,我必须从 Interface Builder 中的自定义视图控制拖动到File's Owner,并且视图将重绘。所有绘图代码在独立的 xCode 项目中都可以正常工作,因此我知道我的drawRect方法,并且所有其他视图方法都按我想要的方式工作。如果我做同样的事情,我也可以GraphView让它在我当前的项目中工作,但applicationDidFinishLaunching不会运行。

下面是示例项目中代码的细分。

我缺少的部分是什么,这样我就不必在 InterfaceBuilder 中从我GraphView的 to中建立连接File's Owner来获取要更新的视图[self.graph setNeedsDisplay:YES]。任何帮助或方向将不胜感激。

0 投票
0 回答
337 浏览

ios - iOS 设置 Needs Display 回调

当然,我怎么知道调用 setNeedsDisplay 的效果何时发生?我知道没有完成回调方法。

解释

我需要在self.navigationItem.titleView. 但是每一行都需要有不同的属性。要知道第一行的大小,我需要在titleView中预加载UILabel。显示成功后,我就可以继续了。所有这些都需要在 ViewDidAppear 等之后发生。这样我就不能使用这些生命周期方法。所以基本上,在我将未编辑的标签设置为self.navigationItem.titleView并调用 setNeedsDisplay 之后,我需要知道何时可以返回 titleView/UILabelView 以了解应该在哪里换行,以便我可以利用 titleView 的完全可用宽度。我希望这是有道理的。

0 投票
1 回答
5965 浏览

ios - 使用 setNeedsDisplay 更新 UIView 不起作用

我的应用程序中有一个循环进度条,显示他们花费的用户预算百分比。每次用户切换到带有圆形进度条的视图时,进度条都应该更新。它还应该在用户每次打开应用程序时更新。

目前,由于某种我无法理解的原因,它只会在应用程序打开时更新(从多任务处理中关闭),并且如果用户切换到该视图(它应该)则永远不会更新。我已经进行了大量研究,但无法找到解决方案。

这是创建圆圈的代码:

这是我用来(尝试)更新进度圈的代码。这段代码在 viewDidAppear() 中:

我真的希望有人有解决方案,因为我已经有这个问题大约一个星期了。谢谢。

0 投票
1 回答
353 浏览

ios - 添加子视图后 setNeedsDisplay 不起作用

我在 viewController.view 中添加了大约 500 个视图。这个动作在目标上花费了大约 5 秒。现在我希望在我添加的每个子视图之后刷新屏幕,这样用户会看到它们一一出现在屏幕上。

我在我的 viewController 中试过这个:

我运行它,5 秒钟内什么也没发生,然后所有视图立即出现。我确保从主线程上下文调用 [self.view setNeedsDisplay]。

知道如何让这些子视图一一出现吗?

0 投票
1 回答
87 浏览

ios - 无法使用 drawRect 将 int 传递给 UIView

如何将 int 传递给使用 drawRect 使我成为圆弧的 UIView?

我正在尝试绘制一个圆弧,并且每秒调用 UIView 上的 setNeedsDisplay ,并将 int 提前一(秒)。当我打电话时,这似乎没有打电话并保持(空)NSLog(@"draw, %d",self.secs);

基本上我的代码日志每秒只读取“draw 1”,然后是“draw 0”。

绘制.h

绘图.m

main VC.m - NSTimer 调用它,但 tick.secs 似乎每次都是 0

编辑1:

Stonz2 非常正确,我应该使用一个实例draw- 这已经解决了我的一半问题。现在在我的主 VC.m 中,tick.secs每秒都在增加,但在 draw.m 中,drawRect 仍然认为secs每秒为 0

编辑 2:Sha 通过使用 UIView 观察我的 IBOutlet 来修复它,而不是绘制

0 投票
3 回答
1884 浏览

ios - 通过 dispatch_async 获取图像数据后刷新 UITableViewCell

我正在编写显示 TableView 的应用程序,其中包含包含图像的条目。我试图通过在cellForRowAtIndexPath方法中执行这行代码来获取图像:

设置图像后,我执行包含以下内容的选择器:

并且没有显示图像,但是当我单击单元格或滚动整个列表时,会显示图像。为什么我的视图不刷新?我错过了什么吗?

0 投票
0 回答
1174 浏览

objective-c - NSView 重绘不适用于 setNeedsDisplay:YES;

我有一个自定义视图,我想在执行 NSView 控制器子类中实现的 IBAction 方法时强制重绘:

这似乎没有任何直接影响。只有当我将鼠标移入自定义视图区域或调整主窗口大小时,我的自定义视图才会重新绘制。

关于为什么这不起作用的任何想法?