2016-06-15 3 views
1

@IBInspectableを使用してボタンのシャドーオフセットを設定しようとしていますが、最小値は0ですが、負の値を設定します。即時に@IBInspectableにCGSizeの負の値を設定できません

like this button.layer.shadowOffset = CGSize(width: -10.0, height: -10.0) 
I have following code 

@IBInspectable var shadowRadius: CGFloat { 
     get { 
      return layer.shadowRadius 
     } 
     set { 
      layer.shadowRadius = newValue 

     } 
    } 

答えて

0

アップルのように見えますが、間違ったタイプのCGSizeがシャドウオフセットになります。負のサイズは論理値ではありません。 これを解決するには、Interface Builderに必要なこの特定の問題を解決するために、負の値を設定することができます。そこで提案された回避策は次のとおりです。

@IBInspectable var shadowWidthOffset: CGFloat { 
    get { 
     return _shadowOffsetWidth 
    } 
    set { 
     _shadowOffsetWidth = newValue 
    } 
    } 

    @IBInspectable var shadowHeightOffset: CGFloat { 
    get { 
     return _shadowOffsetHeight 
    } 
    set { 
     _shadowOffsetHeight = newValue 
    } 
    } 

    override func drawRect(rect: CGRect) { 
    super.drawRect(rect) 
    ... 
    layer.shadowOffset = CGSizeMake(_shadowOffsetWidth, _shadowOffsetHeight) 
    } 
関連する問題