私は円形の緑色のボタンを作成しました。ここで私は色を定義し、以下のような形ましCircularButton.swiftです:Swift 3.0:一度押すとボタンの色が変わります
import UIKit
class CircularButton: UIButton {
@IBInspectable var fillColor: UIColor = UIColor.green
override func draw(_ rect: CGRect) {
let path = UIBezierPath(ovalIn: rect)
fillColor.setFill()
path.fill()
}
}
はここでのスクリーンショットです。オンボタン
私は赤にその色を変更したい押します。
@IBAction func circularButtonPressed(_ sender: CircularButton) {
sender.fillColor = UIColor.red
sender.draw(CGRect(x: 0, y: 0, width: sender.frame.width,
height: sender.frame.height))
}
色が赤に変更されていない理由を任意のアイデア:私は以下のように機能を定義しましたか?
注:私は、行の下に追加した場合:上記の関数で
sender.backgroundColor = UIColor.white
、赤色のボタンの色が変化します。
ありがとうございました。
読む[ビューの描画サイクル]について(https://developer.apple.com/ライブラリ/ ios/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/WindowsandViews/WindowsandViews.html#// apple_ref/doc/uid/TP40009503-CH2-SW10)。 –
正しい方向をありがとう。 – gbdcool