Есть две кнопки. Роль кнопок состоит в том, чтобы определить, выполнять ли поиск по названию книги или по имени автора при поиске книги.
Я сделал деталь, в которой bookTitleFilterBtn
отключается при нажатии authorNameFilterBtn
.
var buttons: [UIButton] { return [bookTitleFilterBtn, authorNameFilterBtn] }
override func viewDidLoad() {
super.viewDidLoad()
bookTitleFilterBtn.addTarget(self, action: #selector(buttonClicked(_:)), for: .touchUpInside)
authorNameFilterBtn.addTarget(self, action: #selector(buttonClicked(_:)), for: .touchUpInside)
}
func updateButtonsAppearance(allButtons: [UIButton], selectedButton: UIButton) {
for button in allButtons {
let isSelected = button == selectedButton
let currentTitle = button.currentTitle ?? "-"
let title = NSAttributedString(string: currentTitle, attributes: [.foregroundColor: isSelected ? UIColor.white : UIColor.black])
button.setAttributedTitle(title, for: .normal)
button.setTitleColor(isSelected ? .white : .black, for: .normal)
button.backgroundColor = isSelected ? .red : .white
button.isHighlighted = isSelected
}
}
@objc func buttonClicked(_ sender: UIButton) {
DispatchQueue.main.async {
self.updateButtonsAppearance(allButtons: self.buttons, selectedButton: sender)
}
}
Я хочу реализовать то, что «book_title» возвращается при нажатии bookTitleFilterBtn, а «author_name» возвращается при нажатии authorNameFilterBtn.