2017-09-20 15 views
0

나는이 tutorial 다음 IBDesignable을 사용하여 그라데이션에 대한 사용자 정의 옵션을 만들려고을 만들기위한 IBDesignable의 오류,하지만 난 얻을 심지어 단지 튜토리얼에서 코드를 대처 예기치 않은 오류빌드 구배

수입 UIKit

@IBDesignable 
class GradientView: UIView { 

    @IBInspectable var FirstColor: UIColor.clear{ 
     didSet { 
      updateView() 
     } 
    } 
    @IBInspectable var SecondColor: UIColor.clear{ 
     didSet { 
      updateView() 
     } 
    } 

    @IBInspectable var ThirdColor: UIColor.clear{ 
     didSet { 
      updateView() 
     } 
     func updateView() { 

     } 
    } 
} 

enter image description here

답변

0

은 다음과 같이해야합니다

import UIKit 

@IBDesignable 
class GradientView: UIView { 
    @IBInspectable var FirstColor: UIColor = .clear { 
     didSet { 
      updateView() 
     } 
    } 

    @IBInspectable var SecondColor: UIColor = .clear { 
     didSet { 
      updateView() 
     } 
    } 

    @IBInspectable var ThirdColor: UIColor = .clear { 
     didSet { 
      updateView() 
     } 
    } 

    func updateView() { 

    } 
} 
0

import UIKit 

@IBDesignable class GradientView: UIView { 

    @IBInspectable var topColor: UIColor = UIColor.white { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    @IBInspectable var bottomColor: UIColor = UIColor.black { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    @IBInspectable var shadowColor: UIColor = UIColor.black { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    @IBInspectable var shadowX: CGFloat = 0 { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    @IBInspectable var shadowY: CGFloat = -3 { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    @IBInspectable var shadowBlur: CGFloat = 3 { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    @IBInspectable var startPointX: CGFloat = 0 { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    @IBInspectable var startPointY: CGFloat = 0 { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    @IBInspectable var endPointX: CGFloat = 0 { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    @IBInspectable var endPointY: CGFloat = 0 { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    @IBInspectable var cornerRadius: CGFloat = 0 { 
     didSet { 
      setNeedsLayout() 
     } 
    } 

    override class var layerClass: AnyClass { 
     return CAGradientLayer.self 
    } 

    override func layoutSubviews() { 
     let gradientLayer = layer as! CAGradientLayer 
     gradientLayer.colors = [topColor.cgColor, bottomColor.cgColor] 
     gradientLayer.startPoint = CGPoint(x: startPointX, y: startPointY) 
     gradientLayer.endPoint = CGPoint(x: endPointX, y: endPointY) 
     layer.cornerRadius = cornerRadius 
     layer.shadowColor = shadowColor.cgColor 
     layer.shadowOffset = CGSize(width: shadowX, height: shadowY) 
     layer.shadowRadius = shadowBlur 
     layer.shadowOpacity = 1 
    } 
} 
시도