我有一个容器视图(蓝色框)和一个子视图(绿色框)。 我喜欢旋转绿色框,以便它反映旋转和容器盒。
我用
旋转蓝框CGAffineTransform at;
at = CGAffineTransformMakeRotation(M_PI * 90 / 180.0);
view.frame = CGRectApplyAffineTransform(view.frame, at);
at = CGAffineTransformMakeTranslation(-view.frame.origin.x, -view.frame.origin.y);
view.frame = CGRectApplyAffineTransform(view.frame, at);
什么按预期工作。
现在,如果我对绿色框执行相同操作,则其原点为0,0,这不是我想要的。那么我如何计算绿箱的正确来源? (我尝试了一些事情,例如在我旋转之前设置绿色框的中心,但后来意识到我真的很喜欢用矩阵进行数学运算..)
帧:
绿色框:{100,100},{200,100}
蓝框:{0,0} {500,300}
框架:
绿色框:{100,200} {100,200}
蓝框:{0,0} {300,500}