2016-08-09 62 views
0

如何將漸變色應用於UIImageView邊框顏色。我試過是如何將漸變色設置爲UIImageView邊框

let gradient: CAGradientLayer = CAGradientLayer() 

    let color0 = UIColor(red:0.0/255, green:0.0/255, blue:0.0/255, alpha:0.0).CGColor 
    let color1 = UIColor(red:0.0/255, green:0.0/255, blue: 0.0/255, alpha:0.71).CGColor 

    gradient.colors = [color0, color1] 
    gradient.locations = [0.0 , 1.0] 
    gradient.frame = CGRect(x: 0.0, y: 80.0, width: self.imgProfile.frame.size.width, height: self.imgProfile.frame.size.height-35) 

    self.imgProfile.layer.insertSublayer(gradient, atIndex: 0) 

這是需要什麼

enter image description here

請指導,謝謝

更新:

試過這種方式

let gradient = CAGradientLayer() 
    gradient.frame = CGRect(origin: CGPointZero, size: self.imgPeopleProfile.frame.size) 
    gradient.colors = [UIColor.blueColor().CGColor, UIColor.greenColor().CGColor] 

    let shape = CAShapeLayer() 
    shape.lineWidth = 2 
    shape.path = UIBezierPath(rect: self.imgPeopleProfile.bounds).CGPath 
    shape.strokeColor = UIColor.blackColor().CGColor 
    shape.fillColor = UIColor.clearColor().CGColor 
    gradient.mask = shape 

    imgPeopleProfile.layer.cornerRadius = imgPeopleProfile.frame.size.width/2 
    imgPeopleProfile.clipsToBounds = true 
    self.imgPeopleProfile.layer.addSublayer(gradient) 

它給enter image description here

enter image description here

+0

你的方法看起來很不錯,你能告訴我們什麼導致你婷?g –

回答

2

請把ImageView的大小相等的寬度和高度恩。寬度= 100和高度= 100所以它會顯示正確的圓圈。如果你想改變大小,那麼請在下面的行中改變。

shape.path = UIBezierPath(arcCenter: CGPoint(x: 50, y: 50), radius: CGFloat(50), startAngle: CGFloat(0), endAngle:CGFloat(M_PI * 2), clockwise: true).CGPath 

與圓在上面的例子中半徑的50

let gradient = CAGradientLayer() 
      gradient.frame = CGRect(origin: CGPointZero, size: self.imageView.frame.size) 
      gradient.colors = [UIColor(red:87.0/255, green:206.0/255, blue: 172.0/255, alpha:0.71).CGColor,UIColor(red:44.0/255, green:192.0/255, blue:208.0/255, alpha:1.0).CGColor] 

      imageView.layer.cornerRadius = imageView.frame.size.width/2 
      imageView.clipsToBounds = true 

      let shape = CAShapeLayer() 
      shape.lineWidth = 5 
      shape.path = UIBezierPath(arcCenter: CGPoint(x: 50, y: 50), radius: CGFloat(50), startAngle: CGFloat(0), endAngle:CGFloat(M_PI * 2), clockwise: true).CGPath 
      shape.strokeColor = UIColor.blackColor().CGColor 
      shape.fillColor = UIColor.clearColor().CGColor 
      gradient.mask = shape 

      self.imageView.layer.addSublayer(gradient) 

enter image description here

+0

已經實現了這,它不會給你圓角,如果你讓漸變顏色部分切掉圓角。 –

+0

不準確,不會像上面顯示的那樣生成。請檢查更新 –

+0

你能告訴我你的imageview框架請 – ashmi123