我正在尝试复制表情符号键盘底部的滚动选择器,您可以通过点击相应的图标来选择类别,如果滚动,它还会显示您的类别。但是,由于某些原因,我无法让所选按钮突出显示。我可以让滚动工作正常,但是当我点击图标时它不会保持突出显示。这与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
}
答案 0 :(得分:0)
通过应用色调而不是使用isHighlighted
或isSelected
属性,让它以我想要的方式工作:
let tintedImg = origImg?.withRenderingMode(UIImageRenderingMode.alwaysTemplate)
let shortcut = UIButton()
shortcut.setBackgroundImage(tintedImg, for: .normal)
shortcut.tintColor = UIColor.gray