2010-11-15 28 views
24

Làm cách nào để điều hướng đến một trang cụ thể theo lập trình. Về cơ bản tôi có một ứng dụng với một scrollView dân cư với một loạt các subviews (tableViews trong trường hợp này). Khi nhấp vào một chế độ xem phụ, nó phóng to và người dùng có thể chỉnh sửa và điều hướng bảng, tuy nhiên khi tôi thu nhỏ lại, tôi tải lại toàn bộ chế độ xem trong trường hợp có bất kỳ thay đổi nào do người dùng thực hiện. Tất nhiên tải lại khung nhìn sẽ đưa người dùng quay lại trang 0. Tôi đã thử thiết lập thuộc tính pageControl.currentpage nhưng tất cả những gì làm là thay đổi dấu chấm của pageControl. Điều đó có nghĩa là một cái gì đó là sai hoặc tôi cần phải làm điều gì đó khác không?Điều hướng đến trang cụ thể trong scrollView với phân trang, theo lập trình

Tất cả những gì được kiểm soát di chuyển trang là phương pháp này:

- (void)scrollViewDidScroll:(UIScrollView *)sender 
{ 
CGFloat pageWidth = self.scrollView.frame.size.width; 
int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
self.pageControl.currentPage = page; 

NSString *listName = [self.wishLists objectAtIndex:self.pageControl.currentPage]; 
self.labelListName.text = listName; 
} 
+0

thể trùng lặp của [Thay đổi trang trên UIScrollView] (http://stackoverflow.com/questions/1926810/change-page-on-uiscrollview) –

Trả lời

43

Bạn phải tính toán vị trí cuộn tương ứng bằng tay. Để di chuyển đến trang i:

[scrollView setContentOffset:CGPointMake(scrollView.frame.size.width*i, 0.0f) animated:YES]; 
+1

Kể từ chiều rộng trang bằng cuộn xem giới hạn chiều rộng nó về cơ bản một cái gì đó như thế này: [scrollView setContentOffset: scrollView.bounds.size.width * i animated: YES]; – SteamTrout

+0

Rõ ràng bạn cần cung cấp một CGPoint cho giá trị bù đắp để tạo ra một CGPoint và đặt nó như là bù đắp làm việc như quyến rũ! Cám ơn mấy đứa nhiều! – Glitch

+0

Bạn nói đúng, Glitch. Xin lỗi tôi đã bỏ lỡ điều về 'CGPoint'. Đã sửa mã. –

Các vấn đề liên quan