Views have both a frame (coordinates in the coordinate system of the observation) and borders (coordinates in their own coordinate system), but if you transform the view, you should not use or rely on the frame property anymore. If you use transforms, work with borders on a property, not a property of a frame, since transformations are applied to borders, but are not necessarily accurately reflected in the frame
http://iphonedevelopment.blogspot.jp/2008/10/demystifying-cgaffinetransform.html
I wanted to see what he had in mind in the previous paragraph, and print “frames” and “borders”
And I see that only the “frame” changes during the pinch.
- (IBAction)handlePinch:(UIPinchGestureRecognizer*)recognizer { NSLog(@"scale: %f, velocity: %f", recognizer.scale, recognizer.velocity); NSLog(@"Before, frame: %@, bounds: %@", NSStringFromCGRect(recognizer.view.frame), NSStringFromCGRect(recognizer.view.bounds)); recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale); NSLog(@"After, frame: %@, bounds: %@", NSStringFromCGRect(recognizer.view.frame), NSStringFromCGRect(recognizer.view.bounds)); recognizer.scale = 1; }
output: (zomming in)
2012-07-02 14:53:51.458 GestureRec[1264:707] scale: 1.030111, velocity: 0.945660 2012-07-02 14:53:51.466 GestureRec[1264:707] Before, frame: {{0, 124}, {320, 160}}, bounds: {{0, 0}, {320, 160}} 2012-07-02 14:53:51.473 GestureRec[1264:707] After, frame: {{-4.81771, 121.591}, {329.635, 164.818}}, bounds: {{0, 0}, {320, 160}} 2012-07-02 14:53:51.480 GestureRec[1264:707] scale: 1.074539, velocity: 1.889658 2012-07-02 14:53:51.484 GestureRec[1264:707] Before, frame: {{-4.81771, 121.591}, {329.635, 164.818}}, bounds: {{0, 0}, {320, 160}} 2012-07-02 14:53:51.494 GestureRec[1264:707] After, frame: {{-17.103, 115.449}, {354.206, 177.103}}, bounds: {{0, 0}, {320, 160}} 2012-07-02 14:53:51.499 GestureRec[1264:707] scale: 1.000000, velocity: 1.889658 2012-07-02 14:53:51.506 GestureRec[1264:707] Before, frame: {{-17.103, 115.449}, {354.206, 177.103}}, bounds: {{0, 0}, {320, 160}} 2012-07-02 14:53:51.510 GestureRec[1264:707] After, frame: {{-17.103, 115.449}, {354.206, 177.103}}, bounds: {{0, 0}, {320, 160}}
I don’t understand something or is the author of the blog wrong?