ইতিমধ্যে এখানে কিছু ভাল উত্তর আছে। যাইহোক, পরিস্থিতিগুলির জন্য যেখানে সামগ্রী কোনও পৃষ্ঠায় হুবহু খাপ খায় না - এবং যদি আমার মতো আপনি ফলাফলটি a UIPageControl
এর জন্য ব্যবহার করতে চান তবে ceil
ফাংশনটি ব্যবহার করা এটি প্রয়োজনীয় ।
আসুন একটি উদাহরণ নেওয়া যাক যেখানে আমার কাছে সামগ্রীর "চার এবং কিছুটা" পৃষ্ঠা রয়েছে।
আমি এটি আমার বর্তমান বাস্তব জীবনের উদাহরণের ভিত্তিতে করব। সামগ্রীর আকারের প্রস্থ 3140 পয়েন্ট। আমার সংগ্রহ ভিউ ফ্রেমের আকারের উপর ভিত্তি করে পৃষ্ঠার প্রস্থ 728।
পৃষ্ঠাগুলির সমান সংখ্যা:
3140 / 728 = 4.313
আমার numberOfPages
পাঁচ বছর হতে চলেছে। এর মধ্যে চারটি সম্পূর্ণরূপে প্রদর্শিত হবে, এবং এর মধ্যে সর্বশেষ - পাঁচ পৃষ্ঠায় - বাকিটি প্রদর্শন করবে0.313
অংশটি প্রদর্শিত হবে।
এখন, numberOfPages
পাঁচটি হওয়ার অর্থাত্ পৃষ্ঠা সূচকগুলি 0, 1, 2, 3 এবং 4 হবে।
আমি যখন ডানদিকে সোয়াইপ করি তখন চূড়ান্ত অফসেটের দিকে পেজিং করি the scrollViewDidEndDecelerating
পদ্ধতিটি 2412 এর একটি চূড়ান্ত এক্স অফসেট দেয়।
বৃত্তাকার গণনা প্রয়োগ করা:
2412 / 728 = 3.313 then rounded = 3
এটা ভুল। অফসেট দ্বারা পৃষ্ঠা ব্যবহারকারীরা যা দেখছেন তা হ'ল:
Offset / Page User Is Viewing
0 0
728 1
1456 2
2184 3
2412 4
সঠিক গণনা ব্যবহার করে ceil
:
private func pageForOffset(offset:CGFloat, pageWidth width:CGFloat) -> Int
{
let page = Int(ceil(offset / width))
NSLog("\(__FUNCTION__) offset \(offset) width \(width) page \(page) ")
return page
}
UIScrollViewDelegate
ব্যবহারকারীর স্ক্রোল করার সময় বর্তমান পৃষ্ঠাটি পেতে ব্যবহার করতে ভুলবেন না !