我想知道检测视图转换的方式是否被翻转。
我看过this question,但我没有预料到的答案。
并且还尝试使用3乘3的CGAffineTransform矩阵进行检测。 但我不擅长数学和这种矩阵......
所以云有人请帮助我......
答案 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
则垂直翻转。