【发布时间】:2017-08-30 19:10:22
【问题描述】:
目前要调整 contentView 是 web 视图的窗口的大小,我这样做:
let oldSize = webView.window?.contentView?.bounds.size
let webSize = <new asset size>
if oldSize != webSize, var origin = self.webView.window?.frame.origin {
origin.y += ((oldSize?.height)! - webSize.height)
webView.window?.setContentSize(webSize)
webView.window?.setFrameOrigin(origin)
webView.bounds.size = webSize
}
这很好,但在 contentSize 更改和重新定位到视觉原点之间有时会有延迟。尝试使用 setFrame: 是随意导致内容大小倾斜。
有没有办法缓冲此类窗口操作以影响平滑过渡。何时涉及 WKWebView?
顺便说一句,在随后的评论中,这是其视图在 webView 上使用的方法:
func fit(_ childView: NSView, parentView: NSView) {
childView.translatesAutoresizingMaskIntoConstraints = false
childView.topAnchor.constraint(equalTo: parentView.topAnchor).isActive = true
childView.leadingAnchor.constraint(equalTo: parentView.leadingAnchor).isActive = true
childView.trailingAnchor.constraint(equalTo: parentView.trailingAnchor).isActive = true
childView.bottomAnchor.constraint(equalTo: parentView.bottomAnchor).isActive = true
}
【问题讨论】:
-
最好使用自动布局。只需将视图的每一侧固定到其父视图,它就会随着窗口调整大小,没有额外的延迟。
-
我确实在视图加载时调用了 fit() 方法,以便添加添加约束的 webView 的视图。
标签: swift wkwebview nswindow window-resize