3D 터치 스크린 압력 기능 (예 : touch.force
)을 사용하려는 작은 프로젝트에서 작업하고 있습니다. 내가 원하는처럼UICollectionView : 셀의 탭에서 힘을 측정하십시오.
지금은 내의 ViewController에서 힘을 측정 할 수 있으며 행동한다 : 나는 그림을 제시 한 UIImageView
이
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
if traitCollection.forceTouchCapability == UIForceTouchCapability.available {
// 3D Touch capable
let force = touch.force
print("Force: " + force.description)
}
}
}
. 투명 셀과 유색 셀이 포함 된 오버레이로 맞춤 UICollectionView
을 사용합니다. 내가 뭘 하려는지 모두 힘을 측정하고, 그들이 눌렀을 때 세포에서 색상을 제거 할 수있을 것입니다,하지만 나는 둘 다하지 못하고 있습니다. 힘을 측정하거나 UICollectionView에서 셀의 색상을 변경할 수 있지만 둘 다 변경할 수는 없습니다.
해결책은 UICollectionView의 touches
을 계층 구조의 다음 뷰로 전달하는 것입니다. 그러나 또 다른 해결책은 사용자 정의 UICollectionView
에서 셀에 힘과 레지스터 탭을 측정하는 것입니다.
내 질문에 내 제안 된 솔루션 중 하나가 좋습니다. 그렇다면 어떻게 달성 할 수 있습니까?
글쎄, 내가 이틀 후에 배운 바로는 :'touchesMoved'는 UICollectionView에서도 구현할 수있는 유효한 UIView 메소드입니다. 나는 ViewController만이 touchesBegan 메소드를 오버 라이딩 할 수 있다는 것을 인식하지 못했습니다. – Kevin