Ios 从角点调整旋转视图的大小
我有一个UIView selectFrame,它有四个角手柄作为子视图。每个角点句柄都有一个UIPangestureRecognitor,它调用此方法: 这是我的代码(self是selectFrame UIView): 这段代码在没有旋转的情况下运行得非常好,但是在UIView旋转的情况下,它会漂移 然而,如果我在手势结束时进行整个计算,那么Ios 从角点调整旋转视图的大小,ios,uiview,cgaffinetransform,Ios,Uiview,Cgaffinetransform,我有一个UIView selectFrame,它有四个角手柄作为子视图。每个角点句柄都有一个UIPangestureRecognitor,它调用此方法: 这是我的代码(self是selectFrame UIView): 这段代码在没有旋转的情况下运行得非常好,但是在UIView旋转的情况下,它会漂移 然而,如果我在手势结束时进行整个计算,那么 if (gesture.state != UIGestureRecognizerStateEnded) return; 在方法的顶部,它甚至在旋
if (gesture.state != UIGestureRecognizerStateEnded)
return;
在方法的顶部,它甚至在旋转时也能很好地工作,因此代码似乎可以工作,但这可能是舍入错误吗
这个问题似乎有很多不同的说法,但经过几个小时的研究,我找不到一个确切的答案。有许多从中心调整大小的粘贴视图示例可用。这个问题得到了非常完整的答案,但它并没有真正回答这个问题
编辑:有很多回答建议使用三角学,我也尝试过,但在我看来,简单地使用CGAffineTransforms应该是可能的。我对此进行了试验,但没有取得好的效果。我们在积累不同的转换时也遇到了问题。只有平移、缩放或旋转才能正常工作。但是,如果我在平移后旋转,或者反之亦然,则旋转会围绕父视图的0,0旋转视图,缩放会使图像漂移,如您的问题中所述 以下两件事解决了我们的问题:
view.layer.ancorpoint=CGPointMake(0.5,0.5)
CGAffineTransformConcat(当前转换、新转换)
然而,在旋转的情况下,我们使用newTransformation第一个参数和currentTransformation作为第二个参数,如下所示:
CGAffineTransformConcat(新转换、当前转换)
此外,阅读以更好地理解主播点,以及为什么它可能与您的问题有关 我在github上建立了一个项目,用于移动、旋转和缩放。它仅使用CGAffineTransforms进行旋转。此项目在视图的角上具有拖曳控制柄,并从相反的角和旋转控制柄调整大小 它使用了Erica Sadun的文章和
链接到我的可调整大小的项目:你能解决这个问题吗?还没有-我已经偏离了方向,但最终会回到它。希望学习一些线性代数会有所帮助!
if (gesture.state != UIGestureRecognizerStateEnded)
return;