ios - Swift: How to enable pinch-to-zoom for CALayer? -
i have been trying scroll , zoom calayer, cashapelayer, of several polygon paths. added calayer uiscrollview has enabled scrolling around calayer.
however, pinch zoom not working. several tutorials have implemented zooming uiimageview uiscrollviewdelegate so:
@iboutlet var scrollview : uiscrollview! var imageview = uiimageview() scrollview.addsubview(imageview) func viewforzoominginscrollview(scrollview: uiscrollview) -> uiview? { return imageview }
but calayer incompatible uiview , have found no information on reconciling difference.
is there similar native way zoom calayer in swift? simple escaped me? appreciated; apologies if missing obvious.
after digging found related documentation apple. turns out pinch-to-zoom handled automatically on calayers if set correctly. adapted demo code swift , came basic structure, worked me.
class viewcontroller: uiviewcontroller, uiscrollviewdelegate { @iboutlet var scrollview : uiscrollview! var layerview = uiview() var shapelayer= cashapelayer() func viewforzoominginscrollview(scrollview: uiscrollview) -> uiview? { return layerview // specify layer scroll, cannot uiscrollview used scrolling } func scrollviewdidendzooming(scrollview: uiscrollview, withview view: uiview!, atscale scale: cgfloat) { // noted required no inner code necessary } override func viewdidload() { super.viewdidload() layerview.layer.addsublayer(shapelayer) // attach layer canvas view scrollview.addsubview(layerview) // attach views // ... add layer content, set max , min scaling values layer/view sizes encompass content } override func didreceivememorywarning() { super.didreceivememorywarning() } }
i hope helps else!
Comments
Post a Comment