2

次の方法を使用して、アプリケーションのビューの角を丸くしました。

(objective-c:)
hoursTable.layer.cornerRadius = 5.0;
[hoursTable setClipsToBounds:YES];

(my actual code is in rubymotion:)
self.view.layer.cornerRadius = 10
self.view.layer.masksToBounds = true

そのビューのすべての角が 10pt で丸められました。左上と右上の角だけに効果を適用し、左下と右下の角を正方形のままにするにはどうすればよいですか?

4

2 に答える 2

3

私はこのコードで UIView のカテゴリを持っています:

- (void)setRoundedCorners:(UIRectCorner)corners radius:(CGSize)size {
UIBezierPath* maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:corners cornerRadii:size];

CAShapeLayer* maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;

self.layer.mask = maskLayer;
[maskLayer release];
}

ARC を使用する場合は、最後の行を削除してください。

使用例:

[hoursTable setRoundedCorners:UIRectCornerTopLeft|UIRectCornerTopRight radius:CGSizeMake(5.0, 5.0)];
于 2012-07-23T13:27:41.563 に答える
0

パスを手動で作成してみてください

CAShapeLayer* shape = [CAShapeLayer layer];
CGMutablePathRef path = CGPathCreateMutable();
/*...*/
CGPathMoveToPoint(path, NULL, 0, 0);
/*create path for view*/

shape.path = path;
CGPathRelease(path);
view.layer.mask = shape;
于 2012-07-23T13:25:43.170 に答える