小编Ami*_*idi的帖子

将 PKCanvasView 叠加在 WKWebView 之上

我正在尝试将 Apple Pencil 与 WKWebView 集成。

期望的行为:

  • 使用铅笔可以通过所有精美的 PencilKit 集成(PKToolPicker 等)在网页上绘图
  • 使用手指可以滚动浏览网页,并且滚动会同步到 webview。

采取2

因此,在花了更多的时间之后,我得到了一个非常hacky的解决方案,而且我实际上不喜欢这个解决方案:

  • 在其上创建一个WKWebView透明的。PKCanvasView
  • 覆盖hitTestPKCanvasView 的始终返回 nil。
  • drawingGestureRecognizer将PKCanvasView添加到WKWebView
  • 确保已drawingGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouch.TouchType.pencil.rawValue)]设置为PKCanvasView

这种方法有效,但它消除了实现的大量灵活性。

采取1

到目前为止我已经尝试了两种方法:

  • 当我检测到画布上的用户输入来自手指时,有选择地取消用户输入。这不起作用,因为在事件被视图消耗之前我无法检测到这一点。

  • 创建一个透明的超级视图,并在我进行检测时手动为 PKCanvasView 和 WKWebView 调用 TouchesBegan/touchesMoved/touchesEnded 。不幸的是,这也不起作用,因为调用这些方法没有执行任何操作。

这是我到目前为止的一些基本代码:

struct SUICanvasView: UIViewControllerRepresentable {
    let url: URL?
    func makeUIViewController(context: Context) -> ZRCanvasReader {
        let canvasReader = ZRCanvasReader()
        canvasReader.openUrl(url: url)
        return canvasReader
    }

    func updateUIViewController(_ uiViewController: ZRCanvasReader, context: Context) {

    }

    typealias UIViewControllerType = ZRCanvasReader …
Run Code Online (Sandbox Code Playgroud)

webkit uikit ios swift pencilkit

7
推荐指数
1
解决办法
717
查看次数

Java 的 HashMap 冲突解决

所以从我在stackoverflow和其他网站上读到的。Java 使用链表来解决哈希冲突。

这将保证在插入、获取和删除的最坏情况下的复杂度为 O(n)。

为什么 Java 不使用自平衡 BST(如 AVL、Red Black 等)来保证插入、获取和删除的最坏情况下的复杂度为 O(log n)?

java hashmap

5
推荐指数
2
解决办法
1169
查看次数

标签 统计

hashmap ×1

ios ×1

java ×1

pencilkit ×1

swift ×1

uikit ×1

webkit ×1