ios - CGAffineTransform rotation and resize on slider value -
i using slider resize , rotate-
for rotate -
cgaffinetransform transform = editingview.transform; transform = cgaffinetransformmakerotation(sliderval * 2*m_pi / 30); editingview.transform = transform; for resize-
cgaffinetransform t = cgaffinetransformmakescale(sliderval/30, sliderval/30); cgpoint center = editingview.center; [uiview animatewithduration:0.5 animations:^{ editingview.transform = t; editingview.center = center; } completion:^(bool finished) { }]; using above code,both working fine separately.
but have resize rotated view,or rotate resized view.
i saw many suggestions coming separate behavior because using cgaffinetransformmakerotation,cgaffinetransformmakescale,if use cgaffinetransformscale,cgaffinetransformrotation problem solve.
the problem when using cgaffinetransform scaling not proper,view disappears screen.
you're setting transformation matrix of view editingview.transform line.
you should change code rotate:
cgaffinetransform transform = editingview.transform; transform = cgaffinetransformmakerotation(sliderval * 2*m_pi / 30); editingview.transform = cgaffinetransformconcat(editingview.transform, transform); and resize:
cgaffinetransform t = cgaffinetransformmakescale(sliderval/30, sliderval/30); cgpoint center = editingview.center; [uiview animatewithduration:0.5 animations:^{ editingview.transform = cgaffinetransformconcat(editingview.transform,t); editingview.center = center; } completion:^(bool finished) { }]; with cgaffinetransformconcat add 2 transform matrixes won't lose older transforms. can use cgaffinetransformidentity reset transform.
Comments
Post a Comment