サブクラスがUICollectionViewCell
あり、その角を丸めて影も追加する必要があります。セルは正方形のカードのように見え、セル間に十分なスペースがあります。
したがって、すべてのセルの「下」に、影を追加したいと思います。私はこれをうまく行うことができますが、私のセルは底の角だけが丸くなっています。上部には通常の角があります。四隅すべてに丸みのある角が必要です。
ここで、別の を としてUIViews
追加することを推奨する解決策を見つけましたが、パフォーマンス上の理由からこれを避けたいと思います。UIView
subview
以下のコードにあるこのメソッドを使用する解決策が1つ見つかりました。
[UIBezierPath bezierPathWithRoundedRect: cornerRadius:]
しかし、それは私にとってもうまくいきませんでした。セルの「下」/下部にのみ影を追加しようとしているために、それが機能しない可能性はありますか? これらの回答のほとんどは、開発者がセル全体に影を追加したいという質問に対して提供されているようです。
subview
サブクラスにスペシャルを追加しても構わないと思いますがUICollectionViewCell
、それは最後の手段として使用したいと思います。
狙っiOS 7+
て使っていますXcode 6.1.1.
UICollectionViewCell
これは、サブクラス内で使用して、影と丸い角の両方を実現しようとしているコードです。
- (void)load:(CustomUserObject *)customObject
{
self.customObject = customObject;
// Round cell corners
self.layer.cornerRadius = 12;
// Add shadow
self.layer.masksToBounds = NO;
self.layer.shadowOpacity = 0.75f;
self.layer.shadowRadius = 10.0f;
self.layer.shouldRasterize = NO;
self.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(self.frame.size.width/2 - (self.frame.size.width - 50)/2, self.frame.size.height, self.frame.size.width - 50, 10) cornerRadius:self.layer.cornerRadius].CGPath;
}
編集: に設定self.layer.masksToBounds
するNO
と、影は機能しますが、上部の角は丸くなりません。に設定self.layer.masksToBounds
するYES
と、影は機能しませんが、四隅すべてが丸くなりました。四隅すべてを丸めて影を機能させる方法がわかりません。