0

我正在开发一个应用程序,我必须使用 制作地图MKMapView,但形状为圆形?

关于这一点的任何想法,任何线索都会有所帮助。

在屏幕截图中看到,你会明白我在问什么。

请参阅圆圈中的地图。

查看圆圈中的地图

4

2 回答 2

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

很高兴看到更多的答案!!:)

于 2012-08-28T09:41:03.613 回答
1

首先,如果您在使用卫星/航拍照片时这样做,您将违反Google 地图服务条款

10 许可限制。除非本条款明确允许,或者除非您事先获得 Google(或,如适用,特定内容的提供者)的书面授权,否则上述 Google 的许可受您遵守以下所有限制的约束。除非第 7 节明确允许,否则您不得(也不得允许其他任何人):

...

10.7 删除、隐藏或以任何方式更改出现在服务或内容中的任何警告、通知(包括但不限于任何版权或其他所有权通知)或链接;

任何通告MKMapView都可能会掩盖与照片一起显示的版权声明。

我们可能预计MKMapView很快会从使用 Google 数据更改为使用 Apple 数据,但可能会有类似的文本,您不能混淆。


有了这个,有两种方法可以使这项工作:

  1. 创建一个UIView具有透明背景的子类,使其drawRect方法围绕一个圆形孔绘制,并使其pointInside:withEvent:方法返回NO同一个孔。将这些视图之一放在您的MKMapView.
  2. 创建一个CAShapeLayer不透明的圆形(或任何其他形状)并使其成为mask自己MKMapViewlayer. 这将允许圆形地图出现在任何地方,但仍然可以与其不可见的角落进行交互。
于 2012-08-28T12:19:59.727 回答