1
我使用NSView的子類來使其具有可伸縮性。繼蘋果公司的'View Geometry'指南,邊界應伸展到適合框架。 當設置幀大小時,沒有任何變化。當我將框架大小打印到控制檯時,我看到setFrameSize完全沒有做任何事情。NSView的設置比例
所以在這裏我的問題:如何更改設置的框架大小(沒有設置設置界限大小)? (Autolayout禁用)
class ScaledView : NSView {
let scale: CGFloat
let element: Drawable
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented") // not needed, adding it programmatically
}
init(frame frameRect: NSRect, scale: CGFloat, toDraw element: DoubleValue) {
self.scale = scale
self.element = element;
super.init(frame: frameRect)
self.setFrameSize(CGSize(width: self.bounds.size.width * scale, height: self.bounds.size.height * scale))
}
override func drawRect(dirtyRect: NSRect) {
element.draw(dirtyRect, parent: self)
}
}
事情是,我想繪製我的內容的全尺寸和縮小,所以我雖然有一個較小的框架和更大的邊界。所以這就是爲什麼我改變框架。任何想法如何解決? – Jofkos
當然 - 讓框架成爲它將要發生的一切(再次,這就是視圖如何出現在屏幕上,並且可能由用戶或窗口控制),然後將界限設置爲您希望的任何內容。您可以將邊框設置爲比框架大或比框架小,以分別縮放視圖的內容。 – andyvn22
謝謝,就是這樣。我不知道爲什麼我沒有想到... – Jofkos