可可触摸的坐标方式在左上角是0,0。我想知道的是,是否有可能“翻转”它以便0,0位于左下角?
我希望协调系统像cocos2d一样,0,0点位于左下角。是否有可能在可可触摸中实现这一点?
答案 0 :(得分:2)
你问了一个关于“可可”的问题,但实际上,Cocoa长期以来在翻转和未翻录的视图之间有着非常明显的区别。在Cocoa中,您只需要override a method。 (并且在Cocoa中“翻转”意味着Cocoa Touch的做法。默认 - “未解开”-in Cocoa是左下角的原点。)
但你不是在编程Cocoa;你正在编写Cocoa Touch。
所以,你有一个翻转的上下文,大概是因为你从UIKit得到它(你创建的CGContexts没有通过UIKit被解开),你需要解开它。 (或者你有一个没有解开的背景,想要翻转它。)
无论哪种方式,解决方案都是一样的:
翻译起源于此;翻译整个高度将原点移动到对角。
缩放改变轴;将y轴缩放为负1会将其向相反方向翻转,因此向上翻转的是向下,反之亦然。
这就是你如何从左上角原点到左下角翻转(或解除)上下文,反之亦然。
无法使用或不应该尝试的事情:
geometryFlipped
。它会影响子图层,但不会影响自定义图形。 (当然,如果你的所有“绘图”都是形状图层,文本图层和普通图层,那么你可以设置这个属性而不用担心变换。)contentsAreFlipped
。文档说不要这样做。transform
。文档说明transform
应用于的坐标空间的原点位于中心(或anchorPoint
),而不是角落。这很诱人,但我希望随之而来的是欢闹。