iOS13デバイスでは描画が壊れています。
まっすぐな水平線を描くことはできますが、垂直線を描くと、点だけが描かれ、ページは描画されずに上下にスクロールします。
XCodes iOS Simulatorで、iOS12デバイスで動作することを確認しました。
バグは、公式のsignature_padデモhttp://szimek.github.io/signature_pad/でも再現できます。
Safari 13のリリースノートからの引用:
Added support for one-finger accelerated scrolling to all frames and overflow:scroll}}elements eliminating the need to {{set-webkit-overflow-scrolling: touch.
Changed the default behavior on iPad for wide web pages with responsive meta-tags that require horizontal scrolling. Pages are scaled to prevent horizontal scrolling and any text is resized to preserve legibility.
https://developer.apple.com/documentation/safari_release_notes/safari_13_release_notes
これがこのバグの原因でしょうか?
これを修正する最も簡単な方法は、 ontouchmove="return false"
ラッパーを追加することです。
<div ontouchmove="return false">
<canvas id="signature" />
</div>
iOS13.1でも修正されています
onTouchMoveイベントハンドラーをreactアプリのルートコンテナーdivにアタッチする必要がありました。
そのイベントハンドラーを使用してキャンバスをdivでラップしただけでは機能しません。
ただし、これにより、タッチデバイスでのスクロールが完全に無効になります。
そのため、ユーザーがキャンバスをクリックしたときに、ontouchmoveイベントを動的にアタッチおよびデタッチする必要がありました。
最も参考になるコメント
iOS13.1でも修正されています