- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
似乎在这个mouseUp
中设置needsDisplay
处理程序,正在触发一个永无止境的绘图级联,我不确定为什么......
期望的效果是,一旦 mouseUp
更改了按钮的 mode
属性,当 drawRect
发生时,按钮的图标将简单地改变来自 the red circle , 至 the black square 没有上面 gif 中显示的级联图。
我已经缩小了范围,可以说原因是 the rect.origin.x being passed to MainView
's drawRect
function逐渐变大,宽度变小,但我无法弄清楚为什么。
最佳答案
原来发生这种情况是因为我正在为 subview 分配新帧以尝试正确计算调整大小...这触发了绘制循环,因为我正在计算它并在 drawRect
中分配它们>.
原来有一个覆盖专门处理 View 调整大小事件。
从类似的地方更改相关代码
override func drawRect(rect: NSRect) {
super.drawRect(rect)
NSColor(calibratedWhite: 0.1, alpha: 1).setFill()
NSRectFill(rect)
let mbFrame = NSMakeRect(
rect.size.width / 2 - (45 / 2),
8,
49,
49
)
mainBtn.frame = mbFrame
}
到
override func resizeSubviewsWithOldSize(oldSize: NSSize) {
let mbFrame = NSMakeRect(
self.frame.size.width / 2 - (45 / 2),
8,
49,
49
)
mainBtn.frame = mbFrame
}
override func drawRect(rect: NSRect) {
super.drawRect(rect)
NSColor(calibratedWhite: 0.1, alpha: 1).setFill()
NSRectFill(rect)
}
让一切都很好。
关于cocoa - needsDisplay 触发无限 drawRect 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24880135/
Whole app for context 似乎在这个mouseUp中设置needsDisplay处理程序,正在触发一个永无止境的绘图级联,我不确定为什么...... 期望的效果是,一旦 mouseU
我正在尝试实现一个具有隐式动画属性的图层,但我看到了一些非常奇怪的行为。这是一个简单的层,它演示了我的意思: class CustomLayer: CALayer { override ini
我是一名优秀的程序员,十分优秀!