roc*_*711 28 cocoa objective-c
我在界面构建器中创建了一个NSScrollView,它具有可变数量的半唯一NSView,可以通过编程方式添加和删除它.当我将subViews添加到documentView时,它们出现在左下角而不是左上角.我看到你可以检查isFlipped bool来判断视图的坐标系是否被翻转,但我找不到将其设置为翻转的方法.
谁知道我错过了什么?
Mar*_*eau 46
在NSView子类中,重写isFlipped方法:
isFlipped如果接收器使用翻转的绘图坐标,则返回YES;如果使用本机坐标,则返回NO.
NSView讨论默认实现返回NO; 使用翻转坐标的子类应重写此方法以返回YES.
Jay*_*Jay 24
对于希望在Swift中执行此操作的任何人,您可以在自定义类中覆盖:
class FlippedView: NSView {
override var flipped:Bool {
get {
return true
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个想法是每个单独的视图都有自己的绘制方式(例如,使用人工计算的路径)如果你突然翻转它的坐标平面可能会变得非常不稳定(光栅可能很好,而路径可能会倒置,计算可能会将东西放在屏幕外等)。所以它不是可设置的,但子类可以指定,isFlipped因为他们肯定知道视图是如何绘制的。
子类也可以设置它,但是他们必须期望它随时更改。
open class FlippedView: NSView {
override var isFlipped: Bool { true }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13674 次 |
| 最近记录: |