스크롤뷰에서 사용이 안되서 피땀눈물 다흘리고 찾아낸 방법..
우선 스토리보드에서 pangesture 사용하는 방법은
여기에서 간단하게 확인 가능..
이제 이걸 스크롤뷰에서 사용해서, 스크롤할 때 버튼 색상이 변경되도록 하려고 함...
스크롤뷰 자체에서 제스처를 사용하기 때문에,
pan gesture recognizer와 함께 사용하면 충돌이 일어납니다
이걸 막기 위해.. 메서드 하나를 추가할건데
대충.. gesture recognizer를 동시에 인식할 수 있게 할 것이냐? 라는 그런 메서드임
얘를 사용해서 스크롤뷰의 제스처(스크롤링)와 pan gesture를 동시에 사용할 수 있게 됨
바로 이것........
꼭........
길더라도 전부 입력할 것...
멋대로 should~~~~ 빼고 넣었다가 안되서 몇시간 박았습니다..
extension SecondViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
}
위와 같이 extension을 사용해서 따로 메서드 추가해줘도 되고
그냥 viewcontroller 클래스에 UIGestureRecognizerDelegate 하나 더 가져와주고 안에 적어두 됨..
중요한 건 저 메서드를 넣느냐니까요..
이제 스크롤의 방향(상하좌우)을 인식해서 버튼 색을 바꿔보겠음
@IBAction func panAction(_ sender: UIPanGestureRecognizer) {
let velocity = sender.velocity(in: scrollView2)
if velocity.y > 0 {
button1.backgroundColor = .red
} else {
button1.backgroundColor = .blue
}
}
위로 스크롤할 때 빨강색, 그 외엔 파란색이 되도록 바꾼 코드인데
여기서 이제 좌우를 인식하고 싶다면 velocity.x 를 사용해서 코드를 만들어주면 됩니다
참고:
Apple Developer Documentation
developer.apple.com
'iOS' 카테고리의 다른 글
swift ) 화면 방향(orientation) 고정하기 (0) | 2022.07.07 |
---|---|
iOS ) 커스텀 테이블뷰 사용하기 (0) | 2022.06.07 |
iOS ) 간단하게 Pan Gesture Recognizer 사용하는 방법 with Storyboard (0) | 2022.06.06 |
iOS ) 코코아팟이란? & 코코아팟 사용방법 - 오픈소스 라이브러리 사용 (0) | 2022.06.05 |
xcode ) 뷰에 여백(margin) 주기 (0) | 2022.06.02 |