私は2つのカスタムクラスを作成しました:CutomViewクラス(UIViewのサブクラス)とCustomButtonクラス(UIButtonのサブクラス)。iOSのCustomViewとCustomButton
class CustomView: UIView {
override func drawRect(rect: CGRect) {
// Drawing code
layer.masksToBounds = true
layer.borderWidth = 2.0
layer.borderColor = UIColor(colorLiteralRed: 0.0/255, green: 64.0/255, blue: 128.0/255, alpha: 1).CGColor
layer.cornerRadius = 10.0
let startColor = UIColor(colorLiteralRed: 255.0/255, green: 204.0/255, blue: 1.0, alpha: 1.0).CGColor
let endColor = UIColor(colorLiteralRed: 0, green: 128.0/255, blue: 1.0, alpha: 1.0).CGColor
let gradientLayer = CAGradientLayer()
gradientLayer.frame = CGRect(origin: layer.frame.origin, size: layer.frame.size)
gradientLayer.colors = [startColor, endColor];
layer.addSublayer(gradientLayer)
}
と
@IBDesignable
class CustomButton: UIButton {
override func drawRect(rect: CGRect) {
// Drawing code
layer.masksToBounds = true
layer.borderWidth = 2.0
layer.borderColor = UIColor(colorLiteralRed: 0.0/255, green: 64.0/255, blue: 128.0/255, alpha: 1).CGColor
layer.cornerRadius = 2.0
let startColor = UIColor(colorLiteralRed: 192.0/255, green: 192.0/255, blue: 192.0/255, alpha: 1.0).CGColor
let endColor = UIColor(colorLiteralRed: 239.0/255, green: 239.0/255, blue: 239.0/255, alpha: 1.0).CGColor
let gradientLayer = CAGradientLayer()
gradientLayer.frame = CGRect(origin: layer.frame.origin, size: layer.frame.size)
gradientLayer.colors = [startColor, endColor];
layer.addSublayer(gradientLayer)
}
}
私は、ビューとボタンをデザインするために、これらのカスタムサブクラスを使用しました。私が適用されたカスタムクラスを見るとうまくいきますが、何らかの理由でボタンがシミュレータやiOSデバイスに表示されません。
誰かが私にバグを指摘してもらうことができれば嬉しいです。
Storyboard and Preview shows the purple blue background and button
Simulator only displays purple blue background
に
layer.addSublayer(gradientLayer)
を変更しますか?コードを更新するか、button.settileメソッドを使用してタイトルを設定しようとしています –
@Shobhakar Tiwari私はストーリーボードを使用してボタンを追加し、ボタンをカスタムボタンとしてクラスを設定しています。 – Roshan
okeyはストーリーボードにボタンが表示されていないので、ストーリーボードでibdesignableプロパティを設定してください –