円形のビューを作成する

iPhoneGoogle Mapsアプリでストリートビューを見ると,右下に地図を表示する覗き窓のようなものが現れる.

f:id:horimislime:20110615233222p:image:w360

今開発しているアプリでこれをマネしたかったので,以下にコードをメモ.

*はじめにQuartzCore/QuartzCore.hをインポートしておく

//サイズ指定はお好みで
float diameter=150.0;
float originX=862;
float originY=604; 

MKMapView *mapView=[[MKMapView alloc] initWithFrame:CGRectMake(originX, originY, diameter, diameter)];
mapView.layer.cornerRadius = diameter/2.0;

[self addSubview:mapView];

まず短形でMKMapViewインスタンスを作成し,mapView.layer.cornerRadiusに値をセットしビューの角を丸めて円形にしている.

結果

何も表示しないUIViewクラス内で上記のコードを実行した結果.

f:id:horimislime:20110615233224p:image:w360


本物のMapsアプリのように枠をつけたい場合は

[[mapView layer] setBorderColor:[[UIColor whiteColor] CGColor]];
[[mapView layer] setBorderWidth:4.0];

など.ここではUIViewで定義されているpropertyのみにアクセスしているので,すべてのUIViewサブクラスで同じことができる.