【问题标题】:In iOS is it possible to change a View's coordinate system so that 0,0 is top right corner?在 iOS 中是否可以更改视图的坐标系,使 0,0 位于右上角?
【发布时间】:2015-06-10 23:07:15
【问题描述】:

通常,0,0 坐标是指视图的左上角。更高的 x 坐标更靠右。视图中的框架/矩形的最左边的点是它的 x 坐标,最右边的点是它的 x 坐标加上它的宽度。

是否有可能将其反转,或者更好的是,仅反转 x 轴?使 0,0 成为右上角。使较高的原点更靠左。并使其视图中的框架/矩形将其最右边的点作为其 x 坐标,将其最左边的点作为其 x 坐标加上其宽度。

我知道我可以用纯数学自己转换这些东西,但我想知道 iOS 是否提供这种功能。

【问题讨论】:

    标签: frame coordinate-systems


    【解决方案1】:

    不是。

    • iOS 9 有一些新的翻转功能来支持从右到左的语言,但我认为你不能强求。
    • 您可以通过将视图的transform 属性设置为CGAffineTransformMakeScale(-1, 1) 来翻转视图的绘图,但这不会改变底层坐标系。
    • SpriteKit 的坐标系与普通 UIView 不同,但它的坐标系不是您想要的。

    您可能想阅读Coordinate Systems and Transforms,其中讨论了在不同坐标系之间映射点的一些技术。 This MSDN article 涵盖了使用矩阵的映射点,这可以在理论上为您提供帮助。

    【讨论】:

      【解决方案2】:

      它没有记录,但 UIView 有一个实例变量 _flipsHorizontalAxis,它的功能与听起来一样。看起来它只是通过同名的CALayer变量。

      【讨论】:

        猜你喜欢
        • 2013-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多