JAck
JAck

Reputation: 854

x, y position changes while rotating with gesture recognizer IOS

I am making an IOS App in which I am rotating an imageView. Now, All things are complete. But when the rotation is completed. x, y, of that image View is changing .. How to resolve it . I am attaching code and screenshots so that you can easily find my problem.

 let i = defaults.integerForKey("myown")

        let g = nViews[i].frame
            imageViews[i].transform = CGAffineTransformRotate(imageViews[i].transform, recognizer.rotation)

//            nViews[i].transform = CGAffineTransformRotate(imageViews[i].transform, recognizer.rotation)
//
          recognizer.rotation = 0
        if recognizer.state == UIGestureRecognizerState.Ended
        {

            let f = imageViews[i].frame
//            print(f.size.width)  -->111.576689146311

//            print(f.size.height) -->111.576689146311

//            nViews[i].frame = f
              nButtons[i].frame = CGRect(x: f.origin.x - 10, y: f.origin.y - 10, width: 25, height: 25)
//            imageView.addSubview(nViews[i])
            imageView.addSubview(nButtons[i])

        }

Now the another view which is on that imageView become rectangular because of that changes.. As shown in screenshot first time when imageView is not rotated the view is perfect but when it rotates view becomes rectangular.. Hope you will understand problem now

enter image description here

Upvotes: 0

Views: 379

Answers (1)

Juan Garcia
Juan Garcia

Reputation: 210

Try to use bounds instead of frame: let g = nViews[i].bounds and let f = imageViews[i].bounds. See When to Use Bound and When to use Frame

Upvotes: 1

Related Questions