iOS 드 롭 다운 새로 고침 컨트롤 작성

현재 iOS 에는 MJrefresh,SVpullToRefresh 등 성숙 한 드 롭 다운 리 셋 컨트롤 이 많 습 니 다.
저 는 여기 서 SV 의 쓰 기 를 참 고 했 지만 리 셋 은 대리 입 니 다.block 을 사용 하지 않 았 습 니 다.개인 적 으로 대리 로 하 는 것 이 더 간결 하 다 고 생각 합 니 다.
드 롭 다운 리 셋 의 기본 원리
scrollview 의 위 와 아래 에 각각 view 를 추가 합 니 다.위 는 드 롭 다운 할 때 드 롭 다운 애니메이션 을 보 여 주 는 header View 입 니 다.아래 는 드 롭 다운 이 더 많 을 때 애니메이션 을 보 여 주 는 footer View 입 니 다.
여기 header View 와 footer View 는 모두 자신 이 추가 한 것 으로 table View 자신의 header,footer 와 다르다.
header View 는 scrollView 의 맨 위 에 추 가 된 것 으로 frame 을 설정 할 때 origin.y 는 마이너스 입 니 다.
드 롭 다운 이 조건 에 도달 하면 새로 고침 을 실행 하고 scrollview 의 contentInsert.top 값 을 변경 하여 손가락 을 풀 면 header View 가 나타 날 수 있 습 니 다.
새로 고침 이 끝 난 후 header View 위의 애니메이션 을 멈 추고 contentInsert 의 값 을 바 꿉 니 다.
footerView 는 맨 아래 에 추 가 됩 니 다.frame.origin.y 는 scrollview 의 contentSize.height 입 니 다.
위 에서 어느 정도 끌 어 올 린 후 scrollview 의 contentInsert 를 변경 하여 footer View 를 드 러 내 고 로드 가 끝 난 후에 바 꿉 니 다.
어떻게 드 롭 다운 새로 고침 을 씁 니까?
드 롭 다운 새로 고침 을 쓰 는 것 은 일반적으로 scrollview 에 분 류 를 쓰 고 새로운 방법 을 추가 하여 headersView 와 footerView 를 scrollview 에 추가 합 니 다.

scrollview 에 headerView 형식의 속성 을 설명 합 니 다(분류 에 속성 을 추가 하 는 방법)
그리고 scrollview 의 contentoffset 속성 에 감청 자 를 추가 합 니 다.이 감청 자 는 header View 입 니 다.

이렇게 하면 scrollview 가 미 끄 러 질 때 미 끄 러 지 는 상황 을 감청 하고 데이터 에 따라 scrollview.contentInsert.y 를 새로 고 칠 지 여 부 를 결정 할 수 있 습 니 다.
그리고 새로 고침 을 중단 하 는 방법 을 쓰 십시오.애니메이션 새로 고침 을 중단 하고 scrollview.contentInsert.y 를 변경 하 는 데 사용 합 니 다.
이렇게 scrollview 의 확장 을 다 쓴 다음 에 사용자 정의 header View 를 써 야 합 니 다.
header View 의 애니메이션 은 필요 에 따라 데이터 원본 이 감 청 된 contentoffset 입 니 다.

scrollView Did Scroll 방법 에서 들 은 값 을 처리 합 니 다.

새로 고침 상 태 를 기록 하기 위해 매 거 진 형식 을 사용 하여 애니메이션 을 제어 합 니 다.
비록 원 리 는 간단 하지만 실천 해 보면 많은 어려움 을 만 났 다.기술적 인 것 도 있 고 논리 적 인 것 도 있 고 심신 이 지 쳐 서 작은 것 을 만 들 었 다.
Demo: https://github.com/chebaoGitHub/CBGeneralRefreshView
footerView 동 리
결어:
이 컨트롤 을 쓰 는 가장 큰 수확 은 set get 방법 에 대한 이 해 를 강화 하고 scrollview 에 대한 이해,category 에 대한 이 해 를 강화 하 는 것 입 니 다.
하지만 여기 에는 bug 가 있 습 니 다.
드 롭 다운 조건 에 도달 하면 header View 는 애니메이션 을 시작 합 니 다.contentInsert 를 설정 한 후에 재생 중인 scrollview 는 떨 림 이 나타 납 니 다.손가락 이 빨리 미 끄 러 질 수록 떨 림 이 심해 집 니 다.왜 그런 지 아직 해결 되 지 않 았 습 니 다.좋 은 해결 방법 을 가지 고 여러분 이 함께 공부 하 시기 바 랍 니 다.

좋은 웹페이지 즐겨찾기