如何检测CGAffineTransform被翻转?

时间:2016-04-08 09:54:18

标签: objective-c swift cgaffinetransform

我想知道检测视图转换的方式是否被翻转。

我看过this question,但我没有预料到的答案。

并且还尝试使用3乘3的CGAffineTransform矩阵进行检测。 但我不擅长数学和这种矩阵......

所以云有人请帮助我......

2 个答案:

答案 0 :(得分:0)

转换不会被翻转。视图被翻转。为此,应用转换。因此转换翻转视图,它本身不会翻转。

所以你可以阅读视图的转换并检查它是否是翻转转换。 (对于x轴,缩放因子为1,对于y轴,缩放因子为-1。)但是,可能会对视图应用许多变换。也许,你没有得到“纯粹的”翻转转换。在一天结束时,这取决于你所谓的“翻转”。翻转是180°旋转吗? (你真正的问题是什么?)

然而,检查的最强大的方法似乎是获得转换并转换点。结果给你一个提示,做了什么。如果y坐标的符号发生变化,但x坐标的值保持不变,则看起来像是一个翻转。 (在第一个视图上。)

答案 1 :(得分:0)

CGAffineTransform 具有检测该属性的属性,

就像我说的那样,

aTransformObj.a:代表scale X

aTransformObj.b:代表skew Y

aTransformObj.c:代表skew X

aTransformObj.d:代表scale Y

aTransformObj.tx:代表translate x

aTransformObj.ty:代表translate Y

您可以查看这些值是否为负数, 1).a属性值,如果它是more then 0 to any negative value,则它是水平翻转的。 2).d属性值,如果它是more then 0 to any negative value则垂直翻转。