【发布时间】:2011-05-13 16:14:59
【问题描述】:
我为 iOS 应用创建了一个包含几何形状的自定义叠加层。我想围绕它的中心(或者更确切地说是boundingMapRect的中心)旋转它。据我了解,使用 CGContextRotateCTM(contextRef, angle) 使用 boundingMapRect 的左上角作为原点旋转叠加层,所以如果我顺时针旋转我的叠加层少量,它会出现在它之前位置的下方和左侧。
我认为如果我可以捕获覆盖边界矩形的初始中心,然后是旋转后的中心,那么我可以计算坐标差并使用 CGContextTranslateCTM 重新定位覆盖。我的问题是中心位置在 CGContextRotateCTM 调用之前和之后是相同的。有什么方法可以强制该调用生效,以便我可以获得新的中心位置?有没有更好的方法来做到这一点?
我看到一些关于使用覆盖层的一半宽度和高度来重新定位的参考,但我不明白这有什么帮助,因为它是恒定的。
谢谢。
【问题讨论】:
标签: ios rotation mapkit overlay