This example project shows how to create an "infinite" canvas using PencilKit. It's not really infinite but it's a canvas so huge that users will most likely regard it infinite.
The approach is the following:
- Create a very huge canvas. I'm using 1000000 x 1000000.
- Place the user in the middle of the canvas.
- Help the user navigate the very large canvas. I'm using arrows on the edges of the screen to show where the user can scroll to see more of the drawing. You could also use a minimap to achieve the same goal.
When doing state restoration, you don't want to place the user in the middle of the canvas. Instead you should place the user in the middle of their drawing.
I use the strokes property of a PKDrawing to calculate the frame of a drawing in the canvas. This is needed to show the arrows that help the user navigate the canvas.
All source code is licensed under the MIT License.