objective-c - 如何在 UIView 中获取 X-Scale 和 Y-Scale?

标签 objective-c ios

如果我在 myView 中有很多 subview (所有 View 都是 UIView 的实例)并且我设置了每个 subview 的变换,可能是它的 setScale、旋转等。如何知道我设置的每个 subview 的 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 的比例

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/

相关文章:

objective-c - 在 heightForRowAtIndexPath 委托(delegate)方法中访问 TableViewCell 时应用程序崩溃

objective-c - iOS更改标签栏项颜色是否安全?

iphone - 什么时候调用 dealloc 方法?

ios - 添加 ChildViewController 会导致 subview Controller 出现奇怪的行为

iphone - 多线程实现的最佳方式

ios - Sprite 与屏幕底部碰撞?

objective-c - 为什么[self.property release]会导致静态分析器显示 "incorrect decrement of the reference count"错误?

ios - 如何为 segue 引用 NSPredicate 的 "%@"?

ios - TTTAttributedLabel 添加操作以截断 ("Read more"文本)

iphone - IOS:在后台播放应用程序时播放声音