2011-01-20 25 views
6

Tôi có một UIPageControl trong ứng dụng của tôi trông hoàn toàn tốt với khoảng 10 trang (dấu chấm), tuy nhiên có thể cho người dùng để thêm nhiều chế độ xem khác nhau và do đó số lượng dấu chấm có thể trở thành nói 30.Cách tốt nhất để xử lý UIPageControl có rất nhiều dấu chấm mà chúng không phù hợp trên màn hình

Khi điều này xảy ra các chấm chỉ biến mất khỏi cạnh màn hình và bạn không thể luôn thấy trang hiện được chọn, làm cho tất cả Trông tệ.

Có cách nào để thực hiện đa quyền kiểm soát trang hoặc chuyển sang trái hoặc phải tại thời điểm trang hiện có thể biến mất khỏi màn hình.

+0

Theo hiểu biết của tôi, nếu bạn có quá nhiều trang, tốt hơn nên sử dụng bất kỳ phương pháp nào khác ngoài UIPageControl. – Sarah

+0

Nó không phải là một tình huống điển hình, 99% thời gian sẽ chỉ có 5-6 trang và xem trang là hữu ích và sự lựa chọn đúng. Vấn đề là bạn có thể thêm bao nhiêu tùy thích và khi điều này xảy ra (không thường xuyên), tôi không muốn nó trông có vẻ khủng khiếp. – BinaryGuy

+0

Tôi đã nhìn thấy nó được thực hiện theo cách như vậy nếu số trang vượt quá không gian có sẵn, cạnh hai chấm sẽ chuyển thành mũi tên (hình tam giác xoay) cho biết có nhiều hơn. – Andrej

Trả lời

3

Tôi đã tạo một ứng dụng sách điện tử đã sử dụng UIScrollView chứa UIWebView. Cuốn sách có hơn 100 trang nên UIPageControl không thể xử lý nó vì vấn đề bạn đã chỉ ra. Tôi đã kết thúc việc tạo chế độ xem kiểu "thanh trượt" tùy chỉnh hoạt động tương tự như UIPageControl nhưng có thể xử lý số lượng lớn các trang. Đó là khá nhiều những gì bạn sẽ cần phải làm. Kiểm soát UIPage không thể xử lý bao nhiêu trang theo ý bạn ...

+2

Bạn vui lòng cho tôi xem thanh trượt tùy chỉnh của bạn không? – user403015

2

Tính tỷ lệ trang/dấu chấm và lưu trữ dưới dạng giá trị float. Sau đó tính số điểm hiện tại là trang/trang hiện tạiPerDot. Bạn có thể cần phải nâng cấp một vài trang trước khi nhìn thấy dấu chấm di chuyển, nhưng nó rất dễ mở rộng và hoạt động tốt.

0

Tôi phải triển khai UIPageControl trong chế độ xem bộ sưu tập ngang có 30 mục. Vì vậy, những gì tôi đã làm để giảm số lượng các dấu chấm bằng cách sửa chữa số lượng các dấu chấm và di chuyển trong những dấu chấm chỉ. Hãy làm theo mã:

@IBOutlet var pageControl: UIPageControl! 
var collectionDataList = [String] 
let dotsCount = 5 

override func viewDidAppear(_ animated: Bool) { 
    if collectionDataList.count < dotsCount { 
     self.pageControl.numberOfPages = collectionDataList.count 
    } else { 
     self.pageControl.numberOfPages = dotsCount 
    } 
} 

func scrollViewDidScroll(_ scrollView: UIScrollView) 
{ 
    let pageWidth = scrollView.frame.width 
    self.currentPage = Int((scrollView.contentOffset.x + pageWidth/2)/pageWidth) 
    self.pageControl.currentPage = self.currentPage % dotsCount 

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