Dalam tampilan gulir saya, saya ingin mendapatkan halaman saat ini yang sedang ditampilkan (mungkin halaman bukanlah istilah yang benar). Saya tidak dapat menemukan variabel apa pun yang menahan ini. Tapi saya pikir itu harus diadakan di suatu tempat, karena indikator dapat menunjukkan sub-tampilan mana dari tampilan gulir yang sedang ditampilkan.
Apakah ini sepenuhnya disembunyikan dari kita atau adakah cara bagi saya untuk mengaksesnya?
ios
objective-c
iphone
cocoa-touch
uiscrollview
TheNeil
sumber
sumber
UIScrollViewDelegate
untuk mendapatkan halaman saat ini ketika pengguna menggulir!Saya sangat menyarankan Anda untuk menggunakan kode ini
tetapi jika Anda menggunakan kode ini, tampilan Anda tidak harus persis pada halaman yang diberikan indexOfPage. Itu karena saya juga menyarankan Anda untuk menggunakan kode ini hanya dalam metode ini
yang dipanggil saat scrollView Anda selesai bergulir dan agar jumlah halaman Anda benar-benar tajam
Saya menyarankan Anda untuk mengatur scrollView Anda ke halaman diaktifkan dengan kode ini
Jadi akhirnya akan terlihat seperti itu
sumber
Dengan cepat saya akan melakukannya dalam ekstensi:
Kemudian panggil saja:
sumber
Seperti di atas, tetapi sebagai kategori
sumber
Cara lain :
sumber
Bagi saja offset saat ini dengan ukuran halaman:
sumber
Sudah ada beberapa jawaban bagus di sini. Namun, untuk skenario di mana konten tidak pas persis dengan halaman - dan jika seperti saya Anda ingin menggunakan hasilnya untuk
UIPageControl
, maka penting untuk menggunakanceil
fungsi tersebut.Mari kita ambil contoh di mana saya memiliki "empat dan sedikit" halaman konten.
Saya akan mendasarkan ini pada contoh kehidupan nyata saya saat ini. Lebar ukuran konten adalah 3140 poin. Berdasarkan ukuran bingkai tampilan koleksi saya, lebar halaman adalah 728.
Jadi jumlah halaman sama dengan:
Saya
numberOfPages
akan menjadi lima. Empat di antaranya akan ditampilkan secara keseluruhan, dan yang terakhir - halaman lima - akan menampilkan konten yang tersisa0.313
.Sekarang,
numberOfPages
menjadi lima berarti indeks halaman akan menjadi 0, 1, 2, 3, dan 4.Saat saya menggesek ke kanan, paging menuju offset akhir, file
scrollViewDidEndDecelerating
metode ini memberikan offset X terakhir 2412.Menerapkan perhitungan pembulatan:
Itu salah. Pengguna halaman yang melihat dengan offset harus:
Perhitungan yang benar menggunakan
ceil
:sumber
Untuk cepat saya hanya akan menggunakan ini
Cukup mudah, pada dasarnya ini mengambil posisi scrollview x, membaginya dengan lebar scrollview, lalu membulatkannya.
sumber
Di xCode 7.x swift 2.x Anda dapat melakukan:
sumber
Solusi Aoakenfo luar biasa, ini adalah solusi lain yang menggabungkan kode Anda dengan fungsi scrollViewDidScroll dan PageController
sumber
Saya mengekstrak ini dari beberapa aplikasi kami ...
Sumber lengkapnya di sini
sumber
Apakah Anda menggunakan UIPageControl? Jika demikian, ini memiliki
currentPage
properti. Jika tidak, saya pikir Anda harus menghitung indeks halaman dari offset scrollView.sumber
Jika Ada yang Mencari cara melakukan di C # untuk Xamarin
Getter dan Setter ini harus memberikan Anda halaman saat ini juga memungkinkan Anda menggulir ke halaman yang ditentukan
sumber
Swift 5.1+ ekstensi UIScrollView (Menghilangkan kata kunci kembali)
sumber