2014-10-16 1 views
1

내 앱을 처음 시작할 때 자습서 화면이 있습니다.UIPageControl의 배경색을 페이지 스 와이프와 함께 변경하려면 어떻게해야합니까?

사용자가 페이지간에 스 와이프 할 때 배경색을 변경하고 싶습니다. 기본적으로 작동하지만 페이지 전환 색상은 스 와이프 전환이 완료 될 때까지 변경되지 않습니다.

UIPageViewController scrolling with background colour change

내가 배경 색상의 변화가 어떻게

(이 스크린 샷에서, 나는 배경 색상 변화를 보여주는 페이지 0과 페이지 1 사이의 중간 방법을 스크롤하고있어) 페이지 스크롤?

여기 내 주요 뷰 컨트롤러의 코드 - 그것은이 Rubymotion에있어하지만 당신이 그것을 수행 할 수 있어야한다 :

그냥 clearColor에 UIPageControl의 backgroundColor로 설정할 수없는 이유
# ... 

def page_control 
    page_controller.view.pageControl 
end 

COLORS = [UIColor.greenColor, UIColor.blueColor, UIColor.orangeColor] 

def pageViewController(page_view_controller, didFinishAnimating: finished, previousViewControllers: previous_view_controllers, transitionCompleted: completed) 
    background_color = COLORS[page_control.currentPage % COLORS.size] 
    page_control.backgroundColor = background_color 
end 

# ... 

답변

0

?

+0

시도해 보았습니다. 대신 부모 컨트롤러보기에서 배경색을 상속받습니다. 페이지 뷰는 페이지 컨트롤과 겹치지 않습니다. – bodacious

+0

왜 페이지 뷰가 컨트롤러 뷰의 전체 높이와 겹치지 않습니까? 또는 이미 시도 했습니까? – believesInSanta

0

동일한 문제가 발생했습니다. 결국 UIPageControl을 구현하는 데 실패했습니다. 기본보기 컨트롤러에서 새보기를 만든 다음 pageviewController보기의 아래쪽 (또는 원하는 곳)에 페이지 컨트롤이 표시되도록 프레임을 설정하고 UIPageViewController보기와 UIPageControl을 하위보기로 추가하십시오.

편집 UIPageViewController가 다른 컨트롤러의 하위 뷰를 표시하고 있기 때문에, 당신은 당신이 하위 뷰로 추가 직전 (주 뷰 컨트롤러에서) [self addChildViewController:pageViewController]를 호출해야합니다. 나중에 [pageViewController didMoveToParentViewController:self]으로 전화하십시오. 이렇게하면 터치 이벤트 등이 기본보기 컨트롤러에서 페이지보기 컨트롤러로 전달됩니다. Apple Docs을 참조하십시오. END 편집

"뒤에"페이지 컨트롤이 일어날 페이지 컨트롤의 배경 clearColor에 색상과 다음 한 페이지에서 전환을 설정합니다. 그런 다음 pageViewController didFinishAnimating 대리자 기능에서 페이지 컨트롤 (currentPage 및 필요한 경우 numberOfPages)을 업데이트 할 수 있습니다. 페이지 컨트롤을 탭하여 페이지를 전환하려면 원하는 대상/액션 메소드를 만들 때 추가하고 UIPageViewControllersetViewControllers:animated: 메소드를 사용하여 전환을 트리거하십시오.

UIPageViewController에 페이지 컨트롤도 없게하려면 presentationCountForPageViewController:presentationIndexForPageViewController:의 구현을 제거하십시오.

+0

그게 유망한 것 같아요. 다시 해보고 다시보고하게 해주세요. :) – bodacious

+0

@bodacious @vodacious 나는 이미 알고있을지라도 하나의 뷰 컨트롤러를 다른 뷰의 하위 뷰로 추가하는 것에 대해 언급해야했던 또 다른 단계가 있다는 것을 깨달았습니다. 내 대답을 편집 할게. – pbasdf

+0

혹시이 작업을 수행 할 코드가 있습니까? –

관련 문제