나는 이것에 대한 튜토리얼을 수색 및 검색했지만 그 중 어느 것도 내가 찾고있는 것은 아니다. Apple의 샘플을 시험해 보았습니다.하지만 색상만으로도보기 좋게 만드는 방법을 모르겠습니다. 내가 찾고있는 것은 페이지 컨트롤을 보여주는 동안 페이지를 볼 수있는 화면입니다. 스크롤보기 페이지마다 완전히 다른보기를 표시하려고합니다. 다른 텍스트 또는 이미지는 아니지만 다른보기. iPhone 또는 ESPN Scorecenter 앱의 홈 화면과 비슷합니다. 도와주세요! 감사합니다.UIScrollview와 UIPagecontrol을 어떻게 조합하여 다른보기를 표시합니까?
답변
관련 질문이 있습니다 : How do I use UIPageControl to create multiple views?, 정말로 좋은 방법은 블로그 게시물 http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html에 설명되어 있습니다.
이 프레임 워크를 사용해보십시오 : https://github.com/AdrianFlorian/AFImageViewer 페이지 컨트롤을 사용하여 현재 페이지를 나타내는 이미지를 스크롤보기로 표시하십시오.
아직 문서를 추가하지 않았지만 프로젝트를 복제하면 예제를 볼 수 있습니다.
쉽게 할 수 있습니다 - URL 만 (이미지 URL)의 배열을 제공하여 별도의 스레드에서 인터넷에서 다운로드 이미지 가 - 그것을있는 UIImage의 배열을주고는 객체 - 대리자를 구현하고 각각에 대한 이미지를 관리 직접 페이지
예제가 복잡하고이 코드는 읽기 쉽기 때문에이 보편적 인 솔루션을 만들었습니다. 코드는 자체 설명이되어야합니다.
- (IBAction)changePage:(id)sender {
_pageControlUsed = YES;
CGFloat pageWidth = _scrollView.contentSize.width /_pageControl.numberOfPages;
CGFloat x = _pageControl.currentPage * pageWidth;
[_scrollView scrollRectToVisible:CGRectMake(x, 0, pageWidth, _scrollView.frame.size.height) animated:YES];
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
_pageControlUsed = NO;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
if (!_pageControlUsed)
_pageControl.currentPage = lround(_scrollView.contentOffset.x/
(_scrollView.contentSize.width/_pageControl.numberOfPages));
}
이 상태
- (IBAction)changePage:(id)sender {
CGFloat x = self.pageControl.currentPage * self.scrollView.frame.size.width;
[self.scrollView setContentOffset:CGPointMake(x, 0) animated:YES];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.isDragging || scrollView.isDecelerating){
self.pageControl.currentPage = lround(self.scrollView.contentOffset.x/(self.scrollView.contentSize.width/self.pageControl.numberOfPages));
}
}
무리의 가장 깨끗한 옵션 – eric
브라보! 이것은 스크롤 뷰 델리게이트를 뷰 컨트롤러에 연결할 때 저에게 효과적이었습니다. –
나는이 질문에 대한 데모 프로젝트를 만들었다 저장하는 변수에 대한 필요없이 @ReneDohan 응답과 동일하지 않습니다. 방문하십시오 : https://github.com/lenhhoxung86/PageControlDemo
- 1. 이 UIPageControl을 어떻게 복제합니까?
- 2. 있는 UIScrollView와 CATiledLayer
- 3. UIScrollView with PagingEnabled가 페이지를 변경하면 UIPageControl을 업데이트하는 방법은 무엇입니까?
- 4. nerdinner는 어떻게 맵을 표시합니까?
- 5. Win32 MessageBox를 어떻게 표시합니까?
- 6. 필수 입력란은 어떻게 표시합니까?
- 7. 트리보기에서 +/- 아이콘을 어떻게 표시합니까?
- 8. Urbanspoon은 어떻게 맵을 표시합니까?
- 9. 데이터베이스에서 정보를 어떻게 표시합니까
- 10. 어떻게 테이블에 순위를 표시합니까
- 11. PDF를 어떻게 표시합니까?
- 12. Matlab - 데이터를 어떻게 표시합니까?
- 13. 어떻게 콘솔에서 시간을 표시합니까?
- 14. 어떻게 하프 화면을 표시합니까?
- 15. 레일 3 모델의 성을 조합하여
- 16. C64의 경계에 스프라이트를 어떻게 표시합니까?
- 17. MATLAB 플롯에서 점을 어떻게 표시합니까?
- 18. Java ResultSet을 시각적으로 어떻게 표시합니까?
- 19. PHP로 페이지로드 시간을 어떻게 표시합니까?
- 20. 어떻게 구조체 템플릿을 친구로 표시합니까?
- 21. JSON 객체의 값을 어떻게 표시합니까?
- 22. 루아에서 배열 요소를 어떻게 표시합니까?
- 23. 어떻게 Android의 DigitalClock에서 날짜를 표시합니까?
- 24. 사용자 시간대에서 시간을 어떻게 표시합니까?
- 25. 마우스 오버시 사각형을 어떻게 표시합니까?
- 26. Monotouch : 파일의 내용을 어떻게 표시합니까?
- 27. NStextview에서 어떻게 선택을 굵게 표시합니까?
- 28. 개체의 모든 값을 어떻게 표시합니까?
- 29. PHP에서 JavaScript 경고를 어떻게 표시합니까?
- 30. PHP에서 선택된 행만 어떻게 표시합니까?
실제로 @ datinc의 대답을보십시오. 매우 깨끗하고 단순합니다. – eric
@ Renene Dohan 클릭 changePage와 scrollViewDidEndDecelerating에 동일한 효과를 얻는 방법. 같은 크기의 이미지를 zip zip으로 움직이면 페이지 컨트롤을 클릭합니다. – kiran
@ReneDohan 절대적으로! 나는 그것을 그렇게 좋아한다! 당신의 투표가 너무 많아서 IMHO가 더 좋았 기 때문에 나는 다른 해결책을 지적했다. :-) – eric