PaperKit:描画エリアのバウンス(スクロール)を止める
PaperKitの描画エリアを、画面サイズと同じ、拡大縮小なし(デフォルトはない)に設定しても、
バウンス(スクロール)して動く。
これを止めたい。
動き的に、構成するviewの中にUIScrollViewがいると思われる。
PaperMarkupViewControllerのviewの構成を出力して確認。
UIView tree
CanvasView<Paper> - frame: (0.0, 0.0, 1376.0, 1032.0)
  UIScrollView - frame: (0.0, 0.0, 1376.0, 1032.0)
    CanvasElementContainerView - frame: (0.0, 0.0, 1376.0, 1032.0)
      PaperView - frame: (0.0, 0.0, 1376.0, 1032.0)
        UIView - frame: (0.0, 0.0, 1376.0, 1032.0)
        CanvasElementDrawingView - frame: (0.0, 0.0, 1376.0, 1032.0)
          UIView - frame: (0.0, 0.0, 1376.0, 1032.0)
    PKTiledCanvasView - frame: (0.0, 0.0, 1376.0, 1032.0)
    PKTiledView - frame: (0.0, 0.0, 1376.0, 1032.0)
      PKSelectionGestureView - frame: (0.0, 0.0, 1376.0, 1032.0)
      PKTiledGestureView - frame: (0.0, 0.0, 1376.0, 1032.0)
    CanvasCollaborationStateView - frame: (0.0, 0.0, 1376.0, 1032.0)
    CanvasElementResizeView - frame: (0.0, 0.0, 1376.0, 1032.0)
      UIView - frame: (0.0, 0.0, 1376.0, 1032.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
    HandwritingReflowView - frame: (0.0, 0.0, 1376.0, 1032.0)
      UIView - frame: (0.0, 0.0, 1376.0, 1032.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
      CanvasElementResizeHandle - frame: (0.0, 0.0, 16.0, 16.0)
思った通り「UIScrollView – frame: (0.0, 0.0, 1376.0, 1032.0)」がいる。
となれば、UIScrollViewを封じていけば良い。
PaperMarkupViewControllerにスクロール制御のプロパティ等はないため、viewから構成を辿り制御する。
UIViewにextensionを用意する。
PaperMarkupViewController生成後に、メソッドをコールする。
生成時だけではなく、PaperMarkupViewControllerにPaperMarkupを再設定する場合は、再度コールが必要になるようだ。
paperViewController.view.disableScrollViewBounce()
extension UIView {
    func disableScrollViewBounce() {
        for subview in subviews {
            if let scrollView = subview as? UIScrollView {
                print("**** found scroll view, disabling bounce ****")
                scrollView.bounces = false
                scrollView.alwaysBounceVertical = false
                scrollView.alwaysBounceHorizontal = false
                scrollView.isScrollEnabled = false
            }
            // 再帰的に探索
            subview.disableScrollViewBounce()
        }
    }
}





