2017-09-19 13 views
0

私はカスタムUIColorを迅速に作成する方法について質問があります。次のコードの下で、私は、中shadowColorはそれをロードするUIColorのカスタムカラーの作成

import UIKit 

extension UIColor { 
    convenience init(red: Int, green: Int, blue: Int) { 
    let newRed = CGFloat(red)/255 
    let newGreen = CGFloat(green)/255 
    let newBlue = CGFloat(blue)/255 

    self.init(red: newRed, green: newGreen, blue: newBlue, alpha: 1.0) 


    } 
} 

let brandBlue = UIColor(red: 0, green: 127, blue: 255) 

class squareButton : UIButton { 

    override init(frame: CGRect) { 
     super.init(frame: frame) 
     self.layer.cornerRadius = 10.0 
     self.layer.shadowColor = (Loading code here) 
     self.layer.shadowRadius = 1.5 
     self.layer.shadowOffset = CGSize(width: 0.0, height: 2.0) 
     self.layer.shadowOpacity = 0.6 
     self.layer.masksToBounds = false 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     self.layer.cornerRadius = 10.0 
     self.layer.shadowColor = (Loading code here) 
     self.layer.shadowRadius = 1.5 
     self.layer.shadowOffset = CGSize(width: 0.0, height: 2.0) 
     self.layer.shadowOpacity = 0.6 
     self.layer.masksToBounds = false 
    } 
} 

をしかし、私は使用されるすべての組み合わせは動作しません

は、私は、次の拡張コードを使用していました。私が使うべきだと言うたびに! CGColorしかし、私はそれを行うと、アプリケーションがクラッシュします。

+0

このトピックについての詳しいヘルプが必要ですか?役に立った場合は、私の答えを正しいものとしてマークすることができればそれはすばらしいことでしょう。ありがとう – AlexWoe89

答えて

3

あなたのコードでは、現在、コンパイラエラーを起こす必要があるself.layer.shadowColor = (Loading code here)UIColorこれに提供されています。

あなたが作成した拡張機能は問題ありません。新しいUIColorインスタンスをインスタンス化した後に、UIColor.cgColorプロパティを使用してください。これがサンプルコードになります:

class SquareButton: UIButton { 

    let brandBlue: UIColor = UIColor(red: 0, green: 127, blue: 255) 

    override init(frame: CGRect) { 
     super.init(frame: frame) 
     self.layer.cornerRadius = 10.0 
     self.layer.shadowColor = brandBlue.cgColor 
     self.layer.shadowRadius = 1.5 
     self.layer.shadowOffset = CGSize(width: 0.0, height: 2.0) 
     self.layer.shadowOpacity = 0.6 
     self.layer.masksToBounds = false 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     self.layer.cornerRadius = 10.0 
     self.layer.shadowColor = brandBlue.cgColor 
     self.layer.shadowRadius = 1.5 
     self.layer.shadowOffset = CGSize(width: 0.0, height: 2.0) 
     self.layer.shadowOpacity = 0.6 
     self.layer.masksToBounds = false 
    } 
} 
1

CGColorUIColorが同じでないとCALayer.shadowColorCGColorにする必要があるありがとう、私を助けてください。 UIColorインスタンスのcgColorプロパティを呼び出すことによってUIColorからCGColorを取得できます。このよう

self.layer.shadowColor = UIColor(red: 0, green: 127, blue: 255).cgColor

関連する問題