swift - UIImageView with sticker and adding Gesture on Sticker -
i have 1 imageview , sticker on want add gesture on sticker, working ,my sticker going out uiimageview's layer shown in image. want sticker's gesture within imageview's boundaries only.
following code:
func addstickers(image: uiimage) { gesture = "stickers" imgsticker = uiimageview(frame: cgrect.init(x: 0.0, y: 0.0, width: 80, height: 80)) imgsticker.center = view.center imgsticker.image = image imgsticker.contentmode = uiviewcontentmode.scaleaspectfill imgsticker.isuserinteractionenabled = true self.view.addsubview(imgsticker) //imgimage.addsubview(imgsticker) pangesture = uipangesturerecognizer.init(target: self, action: #selector(handlepangesture(_:))) pangesture.delegate = self pinchgesture = uipinchgesturerecognizer.init(target: self, action: #selector(handlepinchgesture(_:))) pinchgesture.delegate = self rotategesture = uirotationgesturerecognizer.init(target: self, action: #selector(handlerotategesture(_:))) rotategesture.delegate = self imgsticker.addgesturerecognizer(pangesture) imgsticker.addgesturerecognizer(pinchgesture) imgsticker.addgesturerecognizer(rotategesture) } i calling function , handle methods below:
addstickers(image: #imageliteral(resourcename: "sticker1.png")) func handlepangesture(_ recognizer: uipangesturerecognizer) {
if gesture == "stickers" { let recognizercenter = recognizer.location(in: self .view) imgsticker.center = recognizercenter } else { let recognizercenter = recognizer.location(in: self.view) txtlabel.center = recognizercenter } } func handlepinchgesture(_ recognizer: uipinchgesturerecognizer) { if gesture == "stickers" { imgsticker.transform = imgsticker.transform.scaledby(x: recognizer.scale, y: recognizer.scale) recognizer.scale = 1.0 } else { txtlabel.transform = txtlabel.transform.scaledby(x: recognizer.scale, y: recognizer.scale) recognizer.scale = 1.0 } } func handlerotategesture(_ recognizer: uirotationgesturerecognizer) { if gesture == "stickers" { imgsticker.transform = imgsticker.transform.rotated(by: recognizer.rotation) recognizer.rotation = 0.0 } else { txtlabel.transform = txtlabel.transform.rotated(by: recognizer.rotation) recognizer.rotation = 0.0 } }

Comments
Post a Comment