2011-05-11 3 views
2
pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(153,356,38,36) ]; 

pageControl.userInteractionEnabled =YES; 
pageControl.numberOfPages = 2; 
pageControl.currentPage = 1; 
pageControl.enabled = TRUE; 
[pageControl setHighlighted:YES]; 

[pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged]; 
[self.view addSubview:pageControl]; 
} 
- (IBAction) changePage:(id)sender 
{ 


} 

프로그래밍 방식으로 페이지 컨트롤을 만들고있어 페이지 컨트롤 클릭시 새로운보기 컨트롤러를 표시하려고합니다. 어떻게이 changePage 메서드를 구현해야합니까? 누구든지 도와 줄 수 있습니까?UIPageControl의 문제

+0

http://www.iosdevnotes.com/tag/pagecontrol/ –

답변

0

다음과 같은 것입니다 페이지를 변경하는 방법을 프로그램하는 가장 쉬운 방법 :

- (IBAction)changePage:(id)sender { 
    CGrect frame; 
    frame.origin.x = self.scrollView.frame.size.width * self.pageControl.currentPage; 
    frame.origin.y = 0; 
    frame.size = self.scrollView.frame.size; 
    [self.scrollView scrollRectToVisible:frame animated:YES]; 
} 

편집 : 당신은 단순히 점을 클릭하여 뷰 컨트롤러를 변경하려는 경우, 당신은 당신의 페이지를 설정해야합니다 그래서 UIPageControl이 메인 뷰에 있고 다른 UIView (이 controllerView는 화면 위쪽)는 페이지 컨트롤을 오버레이하지 않고 대부분의 화면을 차지합니다.

또한 헤더 파일에 PageOne *pageOneController;PageTwo *pageTwoController;을 입력해야합니다. 이렇게하면 메모리 누수를 방지하는 데 도움이됩니다. 다른 페이지를 선택하면

그래서, 당신이 당신 대신에 두 개의 서로 다른 뷰 컨트롤러를 보여주는 두 가지보기를 표시 할 수 있습니다

+0

점 두 점에 서로 다른보기 컨트롤러를 표시하고 스크롤보기를 사용하지 않았습니다. 내가 어떻게 할 수 있니? – sumit

+0

기본 답안에이 내용을 입력하는 것이 더 쉬울 것이므로 편집하고 거기에 넣으십시오. – justin

+0

감사합니다. – sumit

0

을 위해 트릭을 어떻게해야 당신의 changePage 방법

- (IBAction)changePage:(id)sender { 
    if (sender.currentPage == 1) { 
     // make sure only one instance exists at a time so there aren't any memory leaks; 
     if (pageOneController != nil) { 
      pageOneController = nil; 
      [pageOneController release]; 
     } 
     // load up page one; 
     pageOneController = [[PageOne alloc] initWithNibName:@"PageOneNib" bundle:nil]; 
     // set this as the primary view; 
     controllerView = viewController.view; 
    } else { 
     // do the same for your other page; 
    } 
} 

전화 할게. 첫 번째 점을 선택한 상태로 유지하고 첫 번째보기를 표시하고 화면 오른쪽에서 다음보기를 볼 수 있습니다. 사용자가 두 번째 점을 탭하면 UIView 애니메이션을 UINavigationController를 밀 때와 비슷하게 만듭니다. 따라서 UIView 애니메이션으로 푸시 앤 팝합니다.

보기 컨트롤러를 표시하려면 사용자가보기 컨트롤러를 전환 할 수 있도록보기 컨트롤러 모두에 페이지 컨트롤을 표시해야합니다. 이 경우, 메인 윈도우에 추가 된 뷰에 페이지 컨트롤이 있어야 모든 곳에서 볼 수 있습니다.

+0

첫 번째 예가 있습니까? 감사. – sumit