私の質問はUIButton
、のグラデーションを設定する方法ではなく、どこに設定するかです。これは私がそれを設定している方法です:
let btnGradient = CAGradientLayer()
btnGradient.frame = button_start_course.bounds
btnGradient.colors = [(UIColor(red: 174.0 / 255.0, green: 127.0 / 255.0, blue: 183.0 / 255.0, alpha: 1.0).CGColor as CGColorRef), (UIColor(red: 78.0 / 255.0, green: 57.0 / 255.0, blue: 96.0 / 255.0, alpha: 1.0).CGColor as CGColorRef)]
button_start_course.layer.insertSublayer(btnGradient, atIndex: 0)
これをで呼び出すとviewDidLoad
、button_start_courseによって誤った境界が指定されます。これを修正するために、私はこのコードをで呼び出しましたviewDidAppear
。button_start_course onstoryboard
に最初に設定された色が最初に表示され、次にグラデーションの色に変わることを除いて、正常に機能します。
これを修正する方法は?
にコードを追加しますviewDidLayoutSubviews
。一度呼び出すには、ビューがサブビューのレイアウトを完了したときにtrueに設定されるブール値を宣言します。
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if !viewDidLayoutSubviews {
viewDidLayoutSubviews = true
// Code here
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加