How to sync stroke between two PKCanvasViews with one in a UIScrollView with scale not 1

I got 3 PKCanvasView, 2 below the Major one.

Users draw lines on the top one, then sync the last stroke to the one underneath. If the stroke crosses two PKCanvasView, we replace the stroke with a bezier curve.

If a stroke doesn't cross regions, we sync the stroke to the one below it(B) as if it is drawn directly on B. The problem is if the B is inside a UIScrollview with a zoom scale not 1, the stroke from major to B will shrink or grow. Does anybody have a solution for this please?

What I did

Also put the major canvas into a uiScrollview, and make sure the zoomScale is the same as the B.

for scale >=1, it works as expected, for scale < 1, sometimes it works, sometimes it doesn't. for example, 0.5, 0.6, 0.8, 0.5 doesn't work, 0.6, 0.8 works, I don't know why.

What it costs

It cost me 16*4 hours for these days. I didn't find a solution. Hopefully, some one can solve it.

How to sync stroke between two PKCanvasViews with one in a UIScrollView with scale not 1
 
 
Q