【问题标题】:Smooth NSWindow resize re: contentSize of WKWebViewSmooth NSWindow resize re: WKWebView 的 contentSize
【发布时间】: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


【解决方案1】:

在调整 NSWindow 大小时,WKWebView 的这种调整延迟可能与在启动窗口时使用 fullSizeContentView styleMask 或在界面设计器中启用“全尺寸内容视图”有关。

【讨论】:

  • 这确实解决了我的问题,但破坏了我的全高侧边栏,它需要fullSizeContentView 样式掩码。我得试试别的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
  • 2018-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多