[ios] LongPressGesture가 2번 찍히는 현상
UILongPressGestureRecognizer
사용법
- 만약 라벨에 LongPressGesture를 만들어주고 싶으면
let tempLabel = UILabel()
let longPressGesture = UILongPressGestureRecognizer()
longPressGesture.addTarget(self, action: #selector(didPress))
label.addGestureRecognizer(longPressGesture)
- 그리고
didPress
함수를 만든다
@objc
키워드를 붙여줘야한다
@objc func didPress() {
print("Did Press!!")
}
- 이렇게 해서 실행해보면 아마 아무일도 안일어날텐데, 다음 코드를 작성해줘야한다
tempLabel.isUserInteractionEnabled = true
문제
- 이제 실행해서 길게 눌러보면 "Did Press!!"가 2번 찍히게 되는데
- 이는 길게 누르기 시작했을 때와 누르기가 끝났을 때, 2가지로 나뉘기 때문이다
- 따라서 이를 분리하고 싶으면 다음처럼 쓰면 된다
@objc func didPress(_ sender: UILongPressGestureRecognizer) {
if sender.state == .began {
print("began Did Press!!")
}
if sender.state == .ended {
print("ended Did Press!!")
}
}
Author And Source
이 문제에 관하여([ios] LongPressGesture가 2번 찍히는 현상), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@yc1303/ios-LongPressGesture가-2번-찍히는-현상
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
let tempLabel = UILabel()
let longPressGesture = UILongPressGestureRecognizer()
longPressGesture.addTarget(self, action: #selector(didPress))
label.addGestureRecognizer(longPressGesture)
didPress
함수를 만든다@objc
키워드를 붙여줘야한다
@objc func didPress() {
print("Did Press!!")
}
tempLabel.isUserInteractionEnabled = true
@objc func didPress(_ sender: UILongPressGestureRecognizer) {
if sender.state == .began {
print("began Did Press!!")
}
if sender.state == .ended {
print("ended Did Press!!")
}
}
Author And Source
이 문제에 관하여([ios] LongPressGesture가 2번 찍히는 현상), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yc1303/ios-LongPressGesture가-2번-찍히는-현상저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)