2016-10-06 16 views
0

私は、アプリケーションのボタンを構成するメソッドを作成しようとしています。私のメソッドは期待通りに機能しますが、影は描画されません。それはクラッシュしません。UIButtonの影が描画されない

私は次のような方法でUIButtonextensionを作成しました:私はviewDidLoadUITableViewController以内にそれを試してみましたが、「運のないviewWillAppear`まし

func configureWhiteText(withBackgroundColor buttonColor: UIColor?) { 
    // basic configuration 
    tintColor = UIColor.white 
    setTitleColor(UIColor.white, for: .normal) 
    backgroundColor = buttonColor 

    // layer stuff 
    layer.drawsAsynchronously = true 
    layer.shouldRasterize = true 
    layer.cornerRadius = 10.0 
    layer.masksToBounds = false 
    layer.shadowColor = UIColor.black.cgColor 
    layer.shadowOffset = CGSize(width: 5.0, height: 5.0) 
    layer.shadowRadius = 5.0 
} 

myButton.configureWhiteText(withBackgroundColor: UIColor.blue) 

ボタンされていますグループ化されたスタティックセルのUITableViewController。シャドウ指向のコード行を除いて、すべてが設定メソッド内で動作します。 layer.cornerRadiusは角を四捨五入していますが、その他の線のいずれも影を描いていません。

layer.masksToBounds = falseを確認しました。また、layer.drawsAsynchronouslylayer.shouldRasterizeをコメントアウトしてみました。

これ以上のアイデアや提案は高く評価されます。 shadowOpacity -

+1

以下の回答と同様に、1行のコードを追加するだけで済みます。詳細については、この[リンク](https://www.hackingwithswift.com/example-code/uikit/how-to-add-a-shadow-to-a-uiview)を参照してください。 – woogii

答えて

4

uibutton延長であると仮定すると、影のパスを設定する必要があります。この行を追加してください:

layer.shadowOpacity = 0.5 

Badda bing badda boom

+0

ありがとうございます!私は何かが欠けていることを知っていたが、WOW!笑。私は今のように感じる - > https://www.youtube.com/watch?v=IS7Og1zvdy8 – Adrian

1

は、あなたはそれがあなたが実際に影をオンに設定を残し

self.layer.shadowPath = UIBezierPath(roundedRect: self.bounds, cornerRadius: 20).CGPath 
+0

提案していただきありがとうございます。私はその行を追加し、同じ結果を得る。 – Adrian

関連する問題