2012-08-28 25 views
0

我正在使用MKMapView製作地圖的應用程序,但圓形?在ios中製作圓形的MKMapView?

對此的任何想法,任何線索都會有幫助。

請參閱屏幕截圖,您將瞭解到我在問什麼。

查看圈中的地圖。

See the Map in Circle

+1

http://stackoverflow.com/questions/1878595/how-to-make-a-circular-uiview – wattson12

+0

@wattson請再看一遍,我只是增加了更多的細節。 –

+0

我不認爲這個設計改變了答案。只需繞過地圖視圖,然後使用疊加層或子視圖添加其他細節 – wattson12

回答

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

首先,如果您在使用衛星/航拍照片時這樣做,您將違反Google Maps Terms of Service

10許可限制。除非本條款明確允許,否則,除非您事先獲得Google的書面授權(或適用情況下,來自特定內容的提供商),否則Google上述許可將遵守以下所有限制。除了在第7節中明確許可,您不得(也不得允許任何其他人):

...

10.7刪除,掩蓋或以任何方式改變任何警告,通知(包括但不限限於任何版權或其他專有權利聲明),或出現在服務或內容中的鏈接;

任何通知MKMapView可能會掩蓋與照片一起顯示的版權聲明。

我們預計MKMapView即將從使用Google數據轉爲使用Apple數據,但可能會出現類似的文字,您不得晦澀難懂。


有了這樣的方式,有兩種方式可以使這項工作:

  1. 創建UIView子類具有透明背景,使其drawRect方法圍繞圓孔畫,使其pointInside:withEvent:方法返回NO爲同一個洞。將其中一個視圖放在MKMapView之上。
  2. 創建一個帶有不透明圓(或任何其他形狀)的CAShapeLayer,並將其作爲MKMapView自己的layermask。這將允許圓形地圖出現在任何地方,但它仍然可以與其看不見的角落交互。