OS X - 在MKAnnotationView的图层上设置(并保留)新的anchorPoint

时间:2014-01-22 14:19:03

标签: objective-c macos animation mkannotationview

我正在开发一个可以从注释群集中受益的OS X地图应用程序,并且已经采用这种为iOS编写的方法:TBAnnotationClustering到Mac OS版本:TBAnnotationClustering (Mac)

除了注释的反弹动画外,事情的效果非常好。在iOS项目中,动画很好地起源于注释的中心。在我的Mac版本中,动画源自左上角。考虑到CALayer在OS X中的不同默认anchorPoint,这是令人沮丧的,但并非出乎意料。

我的问题是我似乎无法永久更改此anchorPoint。我最初尝试在AnnotationView的init方法中将其设置为(0.5,0.5),但它不会“粘住”,并且当我调用动画时,它又回到了(0,0)。我现在的解决方案,即在动画之前重新应用anchorPoint更改,除了丑陋之外,并不完全有效,因为第一次使用注释(并且没有出列),它仍然从左上角反弹

另一个奇怪的数据点:在原始的iOS版本中,如果我在注释视图的init中将anchorPoint更改为(0,0),它实际上会粘住,并且动画从左上方进入,如预期的那样。看起来奇怪的是,anchorPoint的变化会在iOS而不是OS X中出现。

主要问题:
如何为注释视图的图层设置和维护anchorPoint?

还有一些奖励问题,我的启发:

我的理解是我必须将wantsLayer设置为YES才能在OS X中获得一个支持图层的视图。这不是注释视图的情况吗?他们会自动获得一个图层来支持它们吗?

我的进一步理解是,根据Apple Docs,我们特别不应该在图层支持的视图中弄乱图层的anchorPoint属性。那么为什么这似乎是获得居中动画的唯一选择呢?

感谢您的帮助。

0 个答案:

没有答案