7

少し調べてみたところ、UIViewの右上と左上の角だけを丸くする簡単な方法はありませんよね?

ps。このコードは、4つの角すべてを丸くします。これはsmthです。私はほしくない。

  #import <QuartzCore/QuartzCore.h>

 self.layer.cornerRadius = 5;
 self.layer.masksToBounds = YES;
4

2 に答える 2

21

このスニペットでそれを行うことができます:

// 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セルを表示するときにこのようなものを使用する場合、この種の描画は常にパフォーマンスに影響するため、背景画像を使用する方が常に良い選択であることがわかりました。

于 2012-12-28T10:12:00.623 に答える
0

UIViewの拡張機能を一度試しましたが、セルの描画時に問題が発生したため、機能しませんでした。

私は今、完全にうまく機能した2つのステップでより良くて簡単な解決策を得ました:)

1)1行のコード(Swift 2.0)-ビューの4つの角すべてを傷つけます:

YourView.layer.cornerRadius = 10

2)ストーリーボードに1つ追加すると、丸い角が不要な通常の角を持つ1つのビューが追加され、必要に応じて制約が調整されます。小さな通常の角のビューはメインビューの後ろにある必要があることに注意してください。これがストーリーボードでの表示です

ここでは、小さなビューに必要な制約を確認できます

于 2016-09-09T06:11:10.993 に答える