Art*_*rti 5 uibutton ios swift
我有一个带UITapGestureRecognizer和longgestureRecognizer的标签:
let gestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("labelPressed:"))
let longgestureRecognizer = UILongPressGestureRecognizer(target: self, action: Selector("longLabelPressed:"))
label.addGestureRecognizer(gestureRecognizer)
label.addGestureRecognizer(longgestureRecognizer)
Run Code Online (Sandbox Code Playgroud)
当我按下时,我想改变UIButton中的颜色:
func longLabelPressed(recognizer:UILongPressGestureRecognizer){
if let label = recognizer.view as? UILabel {
if recognizer.state == .Began {
label.textColor = UIColor.redColor()
}
if recognizer.state == .Ended {
label.textColor = UIColor.blackColor()
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是如何检测tap结束事件?
func labelPressed(recognizer:UITapGestureRecognizer) {
if let label = recognizer.view as? UILabel {
}
}
Run Code Online (Sandbox Code Playgroud)
我的目标是使用触摸事件创建像UIButton这样的标签.
标签的 UserInteractionEnabled 默认为 false。因此,如果您使用其标签出口,请从(XIB/故事板)启用它
现在要使标签与按钮相同UILongPressGestureRecognizer
,然后您的事件调用成功,但您编写了标签颜色更改代码UILongPressGestureRecognizer,因此需要一些时间(默认时间)来检测触摸事件。recognizer.state == .Began 因此更改长按手势的最短时间
longgestureRecognizer.minimumPressDuration = 0.001
Run Code Online (Sandbox Code Playgroud)
使用它recognizer.state == .Began 会快速调用。
| 归档时间: |
|
| 查看次数: |
1816 次 |
| 最近记录: |