我正在尝试复制表情符号键盘底部的滚动选择器,在这里您可以通过点击相应的图标来选择类别,如果您滚动,它还将显示您所在的类别。但是,由于某种原因,我无法使选中的按钮突出显示。我可以使滚动条正常工作,但是当我单击该图标时,它将不会突出显示。这与touchUpInside触发器的某些属性和突出显示的属性有关吗?
我的密码
var categoryButtons = [UIButton]()
var categoryDistances = [CGFloat]()
func scrollViewDidScroll(_ scrollView: UIScrollView) {
var curIndex = -1
for d in categoryDistances {
if (scrollView.contentOffset.x + 5 >= d) {
curIndex += 1
}
}
for b in categoryButtons {
b.isHighlighted = false
}
if (curIndex == -1) {
curIndex = 0
}
categoryButtons[curIndex].isHighlighted = true
}
func shortcutSelected(_ sender: UIButton) {
snapSelector.contentOffset.x = categoryDistances[categoryButtons.index(of: sender)!]
for b in categoryButtons {
b.isHighlighted = false
}
sender.isHighlighted = true
}
最佳答案
通过应用色调颜色而不是使用isHighlighted
或isSelected
属性,使其按照我想要的方式工作:
let tintedImg = origImg?.withRenderingMode(UIImageRenderingMode.alwaysTemplate)
let shortcut = UIButton()
shortcut.setBackgroundImage(tintedImg, for: .normal)
shortcut.tintColor = UIColor.gray