我有一个
MKMapView,我正在添加一个叠加(MKOverlay).
我希望叠加层使下方的地图视图显示为黑色和白色(即单色).有没有办法做到这一点?
(我想我可以使叠加半透明的黑色/灰色,但这不是我想要的确切效果.)
系统详细信息:在Xcode 4.2中开发iOS 5应用程序.
解决方法
最合适的路线,可悲的是在iOS上尚未提供,将是:
你的MKOverlay在某些时候用于创建一个MKOverlayView,它将从UIView下载一个CALayer.您可以将CIFilters作为compositingFilters附加到CALayers,后者指示视图如何与背景合成.您可以附加CIColorMonochrome类型的过滤器.
由于该选项不可用,您将不得不跳过一些主要障碍来为自己完成工作.您可能需要实现自己的自定义MKOverlayView,在其drawView中使用Apple QA1703中给出的技术来获取相关区域中地图视图的像素内容(注意不要以无限递归循环结束),将它们转换成黑白,并将它们呈现为您的视图.
这是值得进一步研究的东西还是你更乐于替换效果而不是真正深入研究这些东西?