Am văzut un comportament ciudat dintr-o serie de butoane am construit în rezumat. Am 4 butoane, fiecare de tip personalizat TakesContainerButton
și atunci când un buton este apasat se schimbă la fontul de sistem, dar atunci când un alt buton este apasat butonul anterior revine la fontul dorit, nu sunt sigur ce se întâmplă aici
Butoanele sunt, de asemenea, încorporat într-o stivă de vedere, dacă asta contează
Aici este punerea în aplicare atunci când unul dintre butoane este apăsat în cazul în care buttons
este o matrice de 4 butoane
@IBAction func filterPressed(_ sender: TakesContainerButton) {
for button in buttons {
button.unclick()
}
sender.click()
}
aici este clasa personalizat
class TakesContainerButton: UIButton {
var bottom = UIView()
func click(){
self.setTitleColor(.darkGray, for: .normal)
let xOffset:CGFloat = 10
bottom = UIView(frame: CGRect(x: xOffset / 2, y: self.frame.height - 3, width: self.frame.width - xOffset, height: 3))
bottom.layer.cornerRadius = 1.5
bottom.backgroundColor = .darkGray
self.addSubview(bottom)
}
func unclick(){
bottom.removeFromSuperview()
self.setTitleColor(UIColor(hex: "8B8B8B"), for: .normal)
}
override func awakeFromNib(){
setFont()
}
func setFont(){
self.titleLabel?.font = UIFont(name: "Lato-Bold", size: 12)
}
}