2010-08-20 2 views
9

나는 이것에 대한 튜토리얼을 수색 및 검색했지만 그 중 어느 것도 내가 찾고있는 것은 아니다. Apple의 샘플을 시험해 보았습니다.하지만 색상만으로도보기 좋게 만드는 방법을 모르겠습니다. 내가 찾고있는 것은 페이지 컨트롤을 보여주는 동안 페이지를 볼 수있는 화면입니다. 스크롤보기 페이지마다 완전히 다른보기를 표시하려고합니다. 다른 텍스트 또는 이미지는 아니지만 다른보기. iPhone 또는 ESPN Scorecenter 앱의 홈 화면과 비슷합니다. 도와주세요! 감사합니다.UIScrollview와 UIPagecontrol을 어떻게 조합하여 다른보기를 표시합니까?

답변

4

이 프레임 워크를 사용해보십시오 : https://github.com/AdrianFlorian/AFImageViewer 페이지 컨트롤을 사용하여 현재 페이지를 나타내는 이미지를 스크롤보기로 표시하십시오.

아직 문서를 추가하지 않았지만 프로젝트를 복제하면 예제를 볼 수 있습니다.

쉽게 할 수 있습니다 - URL 만 (이미지 URL)의 배열을 제공하여 별도의 스레드에서 인터넷에서 다운로드 이미지 가 - 그것을있는 UIImage의 배열을주고는 객체 - 대리자를 구현하고 각각에 대한 이미지를 관리 직접 페이지

16

예제가 복잡하고이 코드는 읽기 쉽기 때문에이 보편적 인 솔루션을 만들었습니다. 코드는 자체 설명이되어야합니다.

- (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)); 
} 
+0

실제로 @ datinc의 대답을보십시오. 매우 깨끗하고 단순합니다. – eric

+0

@ Renene Dohan 클릭 changePage와 scrollViewDidEndDecelerating에 동일한 효과를 얻는 방법. 같은 크기의 이미지를 zip zip으로 움직이면 페이지 컨트롤을 클릭합니다. – kiran

+0

@ReneDohan 절대적으로! 나는 그것을 그렇게 좋아한다! 당신의 투표가 너무 많아서 IMHO가 더 좋았 기 때문에 나는 다른 해결책을 지적했다. :-) – eric

14

이 상태

- (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)); 
    } 
} 
+0

무리의 가장 깨끗한 옵션 – eric

+0

브라보! 이것은 스크롤 뷰 델리게이트를 뷰 컨트롤러에 연결할 때 저에게 효과적이었습니다. –

관련 문제