1

スウィフトにテーブルビューのセル内の高い値tとrediusコーナーに.toprightを設定する方法:私はこのように、テーブルビューのセル内のUIViewする影の効果と角の丸みに異なる値を設定したい3

 this image

私のコードは次のとおりです。

cell.headerView.round(corners: [.topRight], radius: 35) 

extension UIView { 
    func round(corners: UIRectCorner, radius: CGFloat) { 
     let path = UIBezierPath(roundedRect:self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius)) 
     let mask = CAShapeLayer() 
     mask.path = path.cgPath 
     self.layer.mask = mask 
     self.layoutIfNeeded()  
    } 
} 

これはiPhone SEシミュレーターでの作業が、iPhone 6Sシミュレータを動作していません。

+0

私は' UIBezierPathを使用し自分自身のパスを作成し、ないと思います私が奇妙に感じたのは、SEが6Sではなく、あなたが望む効果を生み出すべきではないということです。 – Larme

+0

私は右上を設定したいコーナーのほうがより丸く残りの3つは同じですコーナーレディスとシャドウ効果 –

答えて

0

スイフト4

myView.clipsToBounds = true 
     myView.layer.cornerRadius = 20 
     myView.layer.maskedCorners = [.layerMaxXMaxYCorner,.layerMinXMaxYCorner,.layerMinXMinYCorner] 
0

Iは、ほぼ同じ実装を使用している、それがデバイスならびにシミュレータの両方で正常に動作しています。

extension UIView 
{ 
    func roundCorners(corners: UIRectCorner, radius: CGFloat) 
    { 
     let bounds = self.bounds 
     let maskPath = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius)) 
     let maskLayer = CAShapeLayer() 
     maskLayer.frame = bounds 
     maskLayer.path = maskPath.cgPath 
     self.layer.mask = maskLayer 
    } 
} 

class CustomCell: UITableViewCell 
{ 
    @IBOutlet weak var customView: UIView! 

    override func awakeFromNib() 
    { 
     super.awakeFromNib() 
     self.customView.layer.cornerRadius = 10.0 
     self.customView.roundCorners(corners: [.topRight], radius: 35.0) 
    } 
} 

スクリーンショット:(:byRoundingCorners:cornerRadii:roundedRect) `各上の同じコーナー効果を適用する必要があります

enter image description here

関連する問題