问题标签 [setneedsdisplayinrect]

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 回答
121 浏览

ios - 在进行多次 setneedsdisplayinrect 后找出哪些矩形在 drawrect 中无效

我正在以网格形式绘制图像。一些图像会移动,我需要更新显示,但显然,我不想不必要地刷新整个屏幕。我多次使用 SetNeedsDisplayInRect 但有时,UIKit 似乎(而且我从其他来源得到这个)会使额外的矩形无效。我不介意重新绘制这些额外的块,但我需要知道哪些额外的块正在失效。

我目前正在保留需要刷新的矩形数组,但是当系统执行额外的矩形时,我最终会得到空方块,因为我没想到会重绘它们。

DrawRect 有参数,但它是一个包含无效区域的矩形。有没有办法确定这些额外的矩形?

0 投票
2 回答
656 浏览

ios - 当我们重新绘制字符串时,UIView 不清除(刷新)

我正在尝试在 UIView 上绘制一个字符数组。问题是视图不会自动刷新,因此不会显示字符。当我们在这里和那里触摸屏幕时,它就会显示出来(有时只是字符的一部分)。当我们重绘一组新的字符时(当数组更新时),旧的也不会被清除。虽然重绘之前绘制的更新数组不会从 UIView 中清除,但它只是在同一个视图上覆盖并显示两者。

这是我的代码:

在 MyView 类中。

writeDrawView 类

0 投票
2 回答
83 浏览

macos - NSView 上的 SetNeedsDisplay 触发整个视图层次结构的重绘

我正在开发一个由 NSWindow 制作的应用程序,它拥有很多自定义子视图,可能不透明。每当我在子视图上调用 SetNeedsDisplay: 或 SetNeedsDisplayInRect: 时,系统都会从父 NSWindows 的内容视图开始调用每个子视图的 drawRect。

如何避免?我怎样才能只重绘脏子视图(它应该是默认行为)?在继承 NSView 时,我可能缺少什么东西吗?还是在设置父 NSWindow 的属性或样式?

谢谢