MacOSX10.5より NSBezierPathに RoudRectbのパス作成メソッドが追加された。
bezierPathWithRoundedRect:xRadius:yRadius:
早速試してみる。
ソース:RoundRect-1.zip
なかなか良い。使い道は多かったのに今まで無かったのが不思議なくらい。昔は自分で円弧と直線を組み合わせて作った覚えがある。
コードはメソッドを呼出してパスを作るだけ。
MyView.m
- (void)drawRect:(NSRect)rect {
// Drawing code here.
[[NSColor whiteColor] set];
NSRectFill(rect);
NSRect rect2 = NSMakeRect(rect.size.width*1.0/4.0/2.0,
rect.size.height*1.0/4.0/2.0,
rect.size.width*3.0/4.0,
rect.size.height*3.0/4.0);
NSBezierPath* path = [NSBezierPath bezierPathWithRoundedRect:rect2
xRadius:15.0
yRadius:15.0];
[[NSColor redColor] set];
[path fill];
}
次回はこれを使って画像の角を丸くしてみよう。