iOS 드 롭 다운 새로 고침 컨트롤 작성
2693 단어 iOS드 롭 다운 리 셋컨트롤
저 는 여기 서 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 는 떨 림 이 나타 납 니 다.손가락 이 빨리 미 끄 러 질 수록 떨 림 이 심해 집 니 다.왜 그런 지 아직 해결 되 지 않 았 습 니 다.좋 은 해결 방법 을 가지 고 여러분 이 함께 공부 하 시기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
View의 레이아웃 방법을 AutoLayout에서 따뜻한 손 계산으로 하면 성능이 9.26배로 된 이야기이 기사는 의 15 일째 기사입니다. 어제는 에서 이었습니다. 손 계산을 권하는 의도는 없고, 특수한 상황하에서 계측한 내용입니다 화면 높이의 10 배 정도의 contentView가있는 UIScrollView 레이아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.