2016-06-23 7 views
0

私のイメージの2つのコーナーのみを丸めたい。 私はObjective-Cで多くのサンプルを見つけましたが、Swiftではほとんど何も見つかりませんでした。スウィフトでイメージのいくつかのコーナーのみを丸める方法

これは私が見つけたものですが、それは私にエラーを与える:私が得る

let rectShape = CAShapeLayer() 

     rectShape.bounds = self.image.frame 
     rectShape.position = self.image.center 
     rectShape.path = UIBezierPath(roundedRect: self.image.bounds,  byRoundingCorners: .BottomLeft | .BottomRight, cornerRadii: CGSize(width: 20, height: 20)).CGPath 

     self.image.layer.backgroundColor = UIColor.greenColor().CGColor 

     self.image.layer.mask = rectShape 

エラーがrectShape.pathに沿ったものであると迅速に

No '|' candidates produce the expected contextual result type 'UIRectCorner' 

答えて

3

が道たちを変えることを私に伝えますこのようなものを置く。客観的なCでは、|私がテストした

let rectShape = CAShapeLayer() 

    rectShape.bounds = self.image.frame 
    rectShape.position = self.image.center 
    rectShape.path = UIBezierPath(roundedRect: self.image.bounds,  byRoundingCorners: [.BottomLeft, .BottomRight], cornerRadii: CGSize(width: 20, height: 20)).CGPath 

    self.image.layer.backgroundColor = UIColor.greenColor().CGColor 

    self.image.layer.mask = rectShape 
+0

感謝をし、それが働いている:別のオプションに、しかし迅速に、あなたは配列のようにそれを配置する必要があります!素早い答えをありがとう! –

+0

これは完全に機能しました! – user7097242

+0

このコードを 'viewDidLayoutSubviews()'に追加してください。これをviewDidLoadで使ってみましたが、私に問題を与えていました。 – user7097242

0
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: [.TopLeft, .BottomLeft], cornerRadii: CGSize(width: 3, height: 3)) 
+0

これはうまくいくはずですが、説明文を追加して他の人があなたの答えを理解できるようにする理由を説明してください。 – AlBlue

関連する問題