2010-03-24 12 views
6

Tôi có 3 "trang" (trang 0, trang 1, trang 2) trong UIScrollView được chụp bằng các lần vuốt ngón tay. Có một UIPageControl ở đó. UIScrollView bắt đầu trình bày trang 0. Những gì tôi muốn làm là hiện tại trang 3 FIRST đôi khi. Làm thế nào tôi có thể làm điều này theo chương trình.cách lập trình trang hiện tại cho UIPageControl?

Chỉ cần đặt currentPage (của UIPageControl) thành số trang sẽ không thực hiện được gì.

Trả lời

23

(Từ ví dụ PageControl)

Để đi trực tiếp đến một phần cụ thể của scrollview sử dụng

CGRect frame = scrollView.frame; 
frame.origin.x = frame.size.width * page; 
frame.origin.y = 0; 
[scrollView scrollRectToVisible:frame animated:YES]; 

tôi chỉ thực hiện như nhau, ví dụ như kiểm soát scrollview và trang và sử dụng

pageControl.currentPage = {pageNumber}; 

hoạt động hoàn hảo, bạn có chắc chắn rằng đầu ra của trangControl là một cách chính xác trong Interface Builder (nếu bạn đang sử dụng nó).

Nếu vấn đề là scrollView không hoạt động và không phải là pageControl. Sau đó, đảm bảo rằng bạn có nội dung của tập hợp scrollView được đặt chính xác.

scrollView.contentSize = CGSizeMake(320*numberOfPages, scrollView.frame.size.height); 

Để scrollview này sau đó bạn thêm nội dung cho từng bộ phận

page1ViewController.view.frame = CGRectMake(0, 0, 320, 200); 
[scrollView addSubview:page1ViewController.view]; 

Trang tiếp theo được đẩy qua chiều rộng 1 màn hình

page2ViewController.view.frame = CGRectMake(320, 0, 320, 200); 
[scrollView addSubview:page2ViewController.view]; 
+0

gì chính xác phải được kết nối với những gì? UIPageControl của tôi được kết nối trực tiếp với RootViewController của tôi và không phải ScrollViewController của tôi (Tất cả trong cùng một tệp xib) – RexOnRoids

+0

Tạo các Cửa hàng trong bộ điều khiển của bạn cho cả scrollView và pageControl @property (nonatomic, retain) IBOutlet UIScrollView * scrollView; @property (nonatomic, retain) IBOutlet UIPageControl * pageControl; và liên kết các nút này với các nút điều khiển trong xib – Liam