UIScrollView内のどこに応じてユーザーがスクロールするときに背景色とテキストを変更する必要があるUIButtonがあります。UIButtonがスクロール時にcornerRadiusを失う(他のプロパティが設定されている場合)
彼らがしきい値を打つとき、私は次の関数を呼び出す:
fileprivate func setFinalizeButton(format: FinalizeButtonFormat) {
switch format {
case ._continue:
let grey = UIColor(red: 189, green: 189, blue: 189)
finalizeButton?.setTitle("Continue", for: .normal)
finalizeButton?.setBackgroundColor(color: grey, forState: .normal)
finalizeButton?.setBackgroundColor(color: grey.darkerColor(percent: 0.2), forState: .highlighted)
case .buyNow:
finalizeButton?.setTitle("Buy Now", for: .normal)
finalizeButton?.setBackgroundColor(color: .black, forState: .normal)
finalizeButton?.setBackgroundColor(color: .black, forState: .highlighted)
}
}
を私はfinalizeButton?.cornerRadius
とfinalizeButton?.layer.cornerRadius
とどちらも仕事の両方を設定しようとしました。どちらもcornerRadiusは0に戻ります(このボタンはcornerRadiusの値が5に初期化されています)
これはどうやって修正するのですか?
ありがとうございます!編集
:ボタンの設定
let finalizeButton = UIButton()
finalizeButton.cornerRadius = 5
finalizeButton.setTitleColor(.white, for: .normal)
finalizeButton.setTitleColor(UIColor.white.darkerColor(percent: 0.2), for: .highlighted)
finalizeButton.backgroundColor = .black
finalizeButton.addTarget(self, action: #selector(finalize(_:)), for: .touchUpInside)
finalizeButton.setTitle("Buy Now", for: .normal)
finalizeButton.titleLabel?.font = UIFont.systemFont(ofSize: 22, weight: UIFontWeightRegular)
bottomSection.addSubview(finalizeButton)
constrain(finalizeButton) {
$0.width == $0.superview!.width * CGFloat(0.8)
$0.height == CGFloat(54)
$0.bottom == $0.superview!.bottom - CGFloat(16)
$0.centerX == $0.superview!.centerX
}
self.finalizeButton = finalizeButton
コードによって他の原因が考えられる可能性がありますか? _think_が関係するものだけではなく、このボタンを操作するために何をしているのかを示してください。 – matt
それだけです。私もボタンの設定を追加します –
@matt更新コード –