少し調べてみたところ、UIViewの右上と左上の角だけを丸くする簡単な方法はありませんよね?
ps。このコードは、4つの角すべてを丸くします。これはsmthです。私はほしくない。
#import <QuartzCore/QuartzCore.h>
self.layer.cornerRadius = 5;
self.layer.masksToBounds = YES;
このスニペットでそれを行うことができます:
// Set top right & left corners
[self setMaskTo:yourView byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight];
編集
すみません、これを忘れました
- (void)setMaskTo:(UIView*)view byRoundingCorners:(UIRectCorner)corners
{
UIBezierPath *rounded = [UIBezierPath bezierPathWithRoundedRect:view.bounds
byRoundingCorners:corners
cornerRadii:CGSizeMake(8.0, 8.0)];
CAShapeLayer *shape = [[CAShapeLayer alloc] init];
[shape setPath:rounded.CGPath];
view.layer.mask = shape;
}
PS:コメントで述べたように、UITableViewCell
セルを表示するときにこのようなものを使用する場合、この種の描画は常にパフォーマンスに影響するため、背景画像を使用する方が常に良い選択であることがわかりました。
UIViewの拡張機能を一度試しましたが、セルの描画時に問題が発生したため、機能しませんでした。
私は今、完全にうまく機能した2つのステップでより良くて簡単な解決策を得ました:)
1)1行のコード(Swift 2.0)-ビューの4つの角すべてを傷つけます:
YourView.layer.cornerRadius = 10
2)ストーリーボードに1つ追加すると、丸い角が不要な通常の角を持つ1つのビューが追加され、必要に応じて制約が調整されます。小さな通常の角のビューはメインビューの後ろにある必要があることに注意してください。これがストーリーボードでの表示です