を追加しようとしたときにUIImageが、私はUIImageView
上の特定の角を丸めるために、この関数を作成している消える:レイヤーマスク
func roundCorners(corners: [UIRectCorner], imageView: UIImageView) -> CAShapeLayer {
let maskPath = UIBezierPath.init(roundedRect: imageView.bounds, byRoundingCorners:[.topLeft], cornerRadii: CGSize.init(width: 7.0, height: 7.0))
let maskLayer = CAShapeLayer()
maskLayer.frame = imageView.frame
maskLayer.path = maskPath.cgPath
return maskLayer
}
私はこのような画像topLeftImage
にそれを適用すると:topLeftImage.layer.mask = roundCorners(corners: [.topLeft], imageView: topLeftImage)
、それは画像が消えます。画像を宣言する方法は次のとおりです。
let topLeftImage: UIImageView = {
let iv = UIImageView()
iv.image = #imageLiteral(resourceName: "myImage")
iv.layoutIfNeeded()
iv.translatesAutoresizingMaskIntoConstraints = false
iv.contentMode = UIViewContentMode.scaleAspectFill
iv.layer.masksToBounds = true
iv.clipsToBounds = true
return iv
}()
レイヤーマスクを適用しても、画像を画面に表示するにはどうすればよいですか。
怠惰VARの代わりに、いつも私はあなたが '聞かせMASKPATH = UIBezierPath.init(roundedRect変更が必要だと思う同じ角を曲がってみましょう – karthikeyan
無関係が、あなたの方法を使用して追加します。imageView.bounds、byRoundingCornersを: CGImage.init(幅:7.0、高さ:7.0)) 'によって生成されます。高さ:7.0)) 'もしあなたが本当にあなたのメソッドが定義されたパラメータを使って動作したいのなら、 –