我有一个自定义UIButton,但是我无法基于快速点击来更改背景或文本颜色。如果有任何效果,请长按:
$('#employees-form-submit').on('click', function(e) {
e.preventDefault();
var form = $('#employees-form');
var formData = form.serialize();
var url = form.attr('action');
$originalItem = form.parent('#employees').siblings('#summary')
console.log(formData);
$.ajax({
url: url,
data: formData,
type: 'PUT',
originalItem: $originalItem,
success: function(data) {
target = this.originalItem.find('#employees-summary');
data.targetEmployees.forEach(function(emp) {
target.find("ul").append(
`<li>${emp.firstName} ${emp.lastName} - email: ${emp.eMail}</li>`
)
})
showTab('summary-tab')
}
});
});
在按住按钮约1秒钟后,我只能获得“ text_highlighted”文本。但是,短按一无所获。
但操作已正确触发:
buton.isUserInteractionEnabled = true
buton.setTitle("text_normal", for: .normal)
buton.setTitle("text_highlighted", for: .highlighted)
buton.setTitle("text_selected", for: .selected)
buton.setTitle("text_focused", for: .focused)
我尝试了什么: 添加自定义
let tap2 = UITapGestureRecognizer(target: self, action: #selector(handleTap))
buton.addGestureRecognizer(tap2)
@objc func handleTap(sender: UITapGestureRecognizer) {
print("click")
}
,稍后也会触发。并且与tocuhesEnded结合使用也不会暂时改变颜色(也许太快了)。
我也不能使用UIButton(类型:.system)-它不是系统样式的按钮。
与更改文本类似,此方法也不起作用:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
...
只有长按才能看到黄色。我正在寻找类似的东西,但是它也需要快速点击才能工作。
“自定义”按钮正在修改layoutSubviews(),但不能修改颜色。自定义按钮包含默认图像和标签。整个按钮都有圆角。但是总体上没有什么特别的。
我没有使用任何情节提要或XIB-所有内容均以编程方式包含在Swift 4中。 该按钮应该指向另一个ViewController,但是我想查看单击时的立即反馈。从情节提要中创建的东西类似:https://youtu.be/lksW12megQg?t=3m25s-现在即使是简单的alpha更改也不适用于我。
答案 0 :(得分:0)
检查uibutton的isselected属性(如果已选择按钮),然后更改按钮的背景色
答案 1 :(得分:0)
简·何塞(Jen Jose)是对的-我的上课时遇到了一个问题,就是“吃光了我的一切”。我将其移至其他ViewController时已确认这一点+表存在相同的问题,无法处理触摸事件(https://stackoverflow.com/a/9248827/1317362)
编辑:
确切地说-此按钮位于UIScrollView中。
添加scrollView.delaysContentTouches = NO;
可以完全解决问题。