我希望在按下时更改uiview的边框颜色,并在释放后返回到正常的边框颜色.这样做的最佳做法是什么?
不要使用UITapGestureRecognizer.您可以使用UILongPressGestureRecognizer
码:
override func viewDidLoad() {
super.viewDidLoad()
let view = UIView.init(frame: CGRect.init(x: 30, y: 200, width: 100, height: 40))
self.view.addSubview(view)
view.layer.borderColor = UIColor.black.cgColor
view.layer.borderWidth = 3
let tapForView = UILongPressGestureRecognizer(target: self, action: #selector(self.toChangeColor(recognizer:)))
tapForView.minimumPressDuration = 0.01
view.isUserInteractionEnabled = true
view.addGestureRecognizer(tapForView)
}
@objc func toChangeColor(recognizer:UILongPressGestureRecognizer)
{
// Apply logic for changing background color.
let view = recognizer.view
if recognizer.state == .began {
view?.layer.borderColor = UIColor.orange.cgColor
print("view began")
}
else if recognizer.state == .ended {
view?.layer.borderColor = UIColor.black.cgColor
print("view ended")
}
}
Run Code Online (Sandbox Code Playgroud)
这将完美地工作.
归档时间: |
|
查看次数: |
1352 次 |
最近记录: |