如果myView中有很多子视图(所有视图都是UIView的实例)并且我设置了每个子视图的transform,可能是它的setScale,rotation或其他。如何知道我设置的每个子视图的xscale和yscale?

例如:

  subview1.transform = CGAffineTransformMakeScale(xscale1, yscale1);
  subview1.transform = CGAffineTransformRotate(subview1.transform, angle1);
  subview2.transform = CGAffineTransformMakeScale(xscale2, yscale2);
  subview2.transform = CGAffineTransformRotate(subview2.transform, angle2);
   .
   .
  subviewx.transform = CGAffineTransformMakeScale(xscalex, yscalex);
  subviewx.transform = CGAffineTransformRotate(subviewx.transform, angle3);

从示例用户在subview.transform中设置一些内容开始,我需要在用户设置之后知道xscale和yscale。我认为这需要解决一些问题,请帮助我。 ^ _ ^

谢谢

最佳答案

CGAffineTransform文档中记下CGAffineTransform CGAffineTransformMakeScale ( CGFloat sx, CGFloat sy);函数。您可以像这样获得视图的比例

view.transform = CGAffineTransformConcat(CGAffineTransformMakeScale(2.0, 0.5), CGAffineTransformMakeRotation(M_PI_4));
CGFloat xScale = view.transform.a / cosf(M_PI_4);
CGFloat yScale = view.transform.d  / cosf(M_PI_4);

关于objective-c - 如何在UIView中获取X-Scale和Y-Scale?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10891807/

10-12 16:18