2017-03-16 1 views
0

単一のイメージビューを右のオブジェクトの出力に変換しようとしています。これはHow to make imageview with different shape in swiftと非常によく似た質問です。しかしそれはswift2にあった。私はそれを試して、それはswift3では動作していないようです。イメージビューをカスタムシェイプに変換する方法(swift3)

ll

+0

私たちにあなたがしようとしたコードを表示してください。 Swift 2とSwift 3の間には、これには何の違いもありません。 – dfd

答えて

0

このようにしてみてください。

extension UIImageView { 
    func addMask(_ bezierPath: UIBezierPath) { 
     let pathMask = CAShapeLayer() 
     pathMask.path = bezierPath.cgPath 
     layer.mask = pathMask 
    } 
} 

試験遊び場:

let myPicture = UIImage(data: try! Data(contentsOf: URL(string:"http://i.stack.imgur.com/Xs4RX.jpg")!))! 
let iv = UIImageView(image: myPicture) 

let bezierPath = UIBezierPath() 
bezierPath.move(to: iv.center) 
bezierPath.addLine(to: CGPoint(x: iv.frame.maxX, y: 0)) 
bezierPath.addLine(to: CGPoint(x: iv.frame.maxX, y: iv.frame.maxY)) 
bezierPath.addLine(to: CGPoint(x: 0, y: iv.frame.maxY)) 
bezierPath.addLine(to: .zero) 
bezierPath.close() 

iv.addMask(bezierPath) 
+0

テストプレイグラウンドを拡張ファイルに入れますか? –

+0

テストコード –

+0

の前にプレイグラウンドファイルに拡張子を追加する必要があります。プロジェクトでは、新しいスウィフトファイルを追加し、ファイルにインポートUIKitを追加し、そこに拡張子を追加します。 –

関連する問題