I'm trying to make a UIView move and rotate at the same time.
Here's my code:
_viewToDrag.frame = CGRectMake(x, y, size, width);
_viewToDrag.transform = CGAffineTransformMakeRotation(-M_PI_2 * multiplier));
As the multiplier increases (0.0 .. 1.0) the view stretches beyond any logic.
This post seems to answer my question: Rotating and Moving a UIImageView (CocoaTouch)
But, since I'm code-dyslexic and a bit retarded can some explain what this translates to code:
Change the "center" property instead.
I would have made a comment but my reputation doesn't allow it.
Always consult the documentation. Apple says, in a big box with an exclamation mark graphic next to it, in the section on
frame
:Underneath
centre
it says:So the answer you link to is incorrect. Given its one-sentence nature with no reference to sources, probably the author tried it once, on the version of iOS he happened to have installed, it looked like it worked and he jumped straight to an unsupported conclusion.
The other answer is correct. You need to build the translation into your transform. Likely by throwing in a use of
CGAffineTransformTranslate
.EDIT: so, to set a transform with a translation of (1000, 0) and a rotation of -M_PI/2:
The frame has a center property as well as origin and size.
The center is a CGPoint just like origin except it marks the center of the frame instead of the upper lefthand corner.