1

編集: 読みやすさを改善するために言語が更新されました。

次のように 2 つの角が丸いイメージ ビューを作成しました。

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.photoImageView.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.path = maskPath.CGPath;
self.photoImageView.layer.mask = maskLayer;

ただし、このコードを使用してすべての角を丸くするよりも遅くなります。

self.photoImageView.layer.cornerRadius = 10;

「2コーナー」コードを改善する理由と方法を知っている人はいますか?

4

1 に答える 1

2

あなたのコードは、別のステージを図面に追加しています。通常、背景は (指定された cornerRadius で) ターゲットに直接描画されますが、マスクを指定すると、一時的なサーフェスに描画され、マスクを使用してターゲットにコピーされます。

標準の CALayer オブジェクトには、背景の角を丸くするだけの組み込み機能はありません。

「遅い」が実際にどれほど遅いのか疑問に思います。これは時期尚早の最適化ですか?

于 2013-03-04T01:27:25.353 に答える