我正在开发一个应用程序,我必须使用MKMapView
创建地图,但是圆形?
对此有任何想法,任何线索也会有所帮助。
在屏幕截图中看到,你会明白我在问什么。
请参阅圆圈中的地图。
答案 0 :(得分:7)
这是一个棘手的方法,但它可能是你想要的!
添加QuartzCore.framework
#import <QuartzCore/QuartzCore.h>
//make circled shape
[yourMapView.layer setMasksToBounds:YES];
[yourMapView.layer setCornerRadius:160.0]; //here you've to pass width of yourMapView / 2
很高兴看到更多答案!! :)
答案 1 :(得分:1)
首先,如果您在使用卫星/航空照片时执行此操作,则会违反Google Maps Terms of Service。
10个许可限制。除非条款明确允许,或者除非您事先获得Google(或适用的特定内容提供商)的书面授权,否则Google的上述许可均受您遵守以下所有限制的约束。除非第7节明确允许,否则您不得(也不允许任何其他人):
...
10.7删除,隐藏或以任何方式更改任何警告,通知(包括但不限于任何版权或其他所有权声明),或服务或内容中出现的链接;
任何通告MKMapView
都可能会模糊显示照片的版权声明。
我们可能希望MKMapView
很快就会从使用Google数据更改为Apple数据,但可能会有类似的文字,您不能忽视它们。
除此之外,有两种方法可以使这项工作:
UIView
子类,使其drawRect
方法在圆孔周围绘制,并使其pointInside:withEvent:
方法返回NO
同一个洞。将其中一个视图放在MKMapView
。CAShapeLayer
,并将其设为mask
自己MKMapView
的{{1}}。这将允许圆形地图出现在任何地方,但仍然可以与其不可见的角落进行交互。