Tampaknya menu geser samping menjadi elemen antarmuka yang lebih umum karena lebih banyak informasi dijejalkan ke setiap aplikasi iPhone. Facebook telah memasukkannya dalam versi terbaru mereka dan aplikasi Gmail baru tampaknya memasukkannya juga . Saya bertanya-tanya apakah ada yang memikirkan cara paling efisien untuk mengembangkan sesuatu seperti ini karena itu menjadi elemen antarmuka yang lebih umum. Sementara saya memiliki pemikiran sendiri tentang cara membangun ini, saya ingin tahu apa yang dipikirkan orang lain.
objective-c
ios
cocoa-touch
Nick ONeill
sumber
sumber
Jawaban:
Saya baru-baru ini menemukan ini, tidak benar-benar melihat kode atau menguji kontrol, tetapi sepertinya itu mungkin titik awal yang sangat baik.
jtrevealsidebar
Sunting: Pembaca juga harus melihat jawaban lain :)
sumber
Ada perpustakaan yang bagus untuk ini oleh Tom Adriaenssen: Inferis / ViewDeck
Ini sangat mudah digunakan dan memiliki pengikut yang cukup besar.
EDIT:
Untuk sesuatu yang sedikit lebih ringan, periksa: mutualmobile / MMDrawerController
Itu tidak memiliki semua fitur ViewDeck tetapi lebih mudah untuk memodifikasi dan memperluas.
sumber
Saya membuat perpustakaan untuk ini. Ini disebut MFSideMenu .
Antara lain itu termasuk dukungan untuk iphone + ipad, portrait + landscape, menu di sisi kiri atau kanan, UITabBarController, dan gerakan pan.
sumber
Lihat MMDrawerController:
MMDrawerController
Kami tidak dapat menemukan perpustakaan yang kami sukai, jadi kami hanya menggulirnya sendiri.
sumber
The Ide kunci yang Anda harus bingkai set self.navigationController.view atau pusat . Ada dua acara yang harus Anda tangani. (1) barButtonItem tekan . (2) gerakan pan karena menggesek.
Anda dapat mengirim view controller ke latar belakang seperti ini:
sumber
Yang lebih baik lagi adalah JASidePanels . Mudah diimplementasikan dan berfungsi baik untuk iPhone maupun iPad.
Tautan Github: JASidePanels
sumber
Implementasi Facebook menempatkan UIPanGestureRecognizer di UINavigationBar. Dengan demikian memungkinkan untuk menangkap gesekan di mana itu dibutuhkan.
Itu memungkinkan untuk melakukan hal-hal seperti, mengenali arah sentuhan dalam x / z secara langsung serta kecepatan yang terjadi.
Juga semacam mengutak-atik UIViews (lebih dari satu di layar pada satu waktu dengan tugas yang jelas berbeda -> dengan demikian pengendali yang berbeda) harus (saya tergoda untuk mengatakan) menggunakan fitur baru ViewController-Containment iOS. Setiap implementasi tanpa itu sangat buruk karena mengotak-atik hierarki tampilan dengan cara yang tidak dimaksudkan oleh Apple.
Pada sidenote: Jika Anda benar-benar ingin tahu tentang bagaimana hal itu dapat dilakukan sedekat mungkin dengan cara Facebook, periksa proyek yang saya buka bersumber di Github PKRevealController .
sumber
Ada puluhan perpustakaan berbeda yang telah dibuat pengembang untuk mengimplementasikan navigasi gaya Facebook / Path untuk aplikasi iOS. Saya dapat mendaftar semuanya tetapi karena Anda telah meminta yang terbaik, berikut adalah dua pilihan saya yang saya gunakan untuk menerapkan menu navigasi geser samping:
1) ECSlidingViewController Sangat mudah untuk mengimplementasikan dan menggunakan Storyboard juga. Saya belum memiliki masalah dalam mengimplementasikannya atau menerima kesalahan atau hal seperti itu. Tautan yang saya berikan memiliki hampir semua penjelasan untuk menggunakannya.
2) SWRevealViewController Perpustakaan ini mudah digunakan dan Anda dapat menemukan tutorial DI SINI , yang menunjukkan cara menerapkannya dengan semua penjelasan beserta gambar. Anda bisa mengikuti tutorial dan terima kasih saya nanti.
sumber
Pilihan lain adalah menggunakan Scringo . Ini memberi Anda menu samping seperti di aplikasi youtube / facebook, dan juga semua jenis fitur bawaan di menu yang dapat Anda pilih untuk ditambahkan (mis. Ngobrol, undang teman, dll ...)
Menambahkan menu samping cukup dengan memanggil [ScringoAgent startSession ...] dan semua konfigurasi dapat dilakukan di situs.
sumber
Rujuk ke sini, titik awal yang sangat bagus: geser keluar navigasi seperti facebook dan path
sumber
Pertanyaan ini cukup populer tetapi semuanya berujung pada pengimporan dan penggunaan yang mudah bagi saya ... Inilah yang saya gunakan ... SWRevealController .
Saya terkejut orang-orang melewatkannya ... Ini SANGAT HEBAT !!! dan mudah digunakan. Pengembang bahkan menyertakan beberapa contoh proyek yang memungkinkan Anda melihat cara menggunakannya dalam berbagai skenario.
sumber
Panduan yang sangat baik untuk bagaimana mengembangkan Navigasi Slide-Out Anda sendiri di Swift dan Objective-C.
Objektif-C
Cepat
sumber
Baik Gmail dan Facebook banyak menggunakan tampilan web, jadi sulit untuk mengatakan apa kode asli dan apa yang dirender HTML. Namun, melihat antarmuka, sepertinya mereka telah menempatkan UITableView dengan lebar lebih sempit daripada lebar layar (320pt) di bawah UIView yang berisi konten yang ingin ditampilkan. Memilih baris tableview yang berbeda mungkin mengganti subview dari tampilan konten.
Setidaknya, itulah cara saya mendekati masalah. Sulit untuk menentukan apa yang seharusnya. Langsung saja masuk dan mulailah bereksperimen!
sumber
Jika Anda mau, saya melakukan repo ini di github GSSlideMenu. Ini memungkinkan Anda untuk membuat menu bergaya Facebook TETAPI dengan "kembali" webView (umumnya semua repo yang saya temukan memiliki tableView sebagai tampilan "kembali").
sumber
ini persis tiruan dari sidebar facebook: perpustakaan GHSidebarNav
sangat mudah digunakan. instruksi ada di
sumber
tampilan di sebelah kanan bisa di dalam subkelas dari UIScrollView. Dalam subkelas ini Anda dapat menimpanya
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
untuk mengembalikan YA hanya jika pengguna menyentuh subview tersebut. Dengan cara ini Anda dapat menempatkan UIScrollView transparan Anda di atas tampilan lain dan melewati setiap acara sentuh yang terjadi di luar subview; dan Anda mendapatkan barang-barang gulir gratis.Sebagai contoh:
atau:
sumber
Coba tambahkan menu Anda (yang Anda geser ke sana) di bawah tampilan utama. Mulai berlangganan untuk menyentuh acara di tampilan.
Terapkan
touchesMoved:
, dan periksa untuk melihat apakah yang pertamagesture
adalah vertikal (gulir tampilan utama, jika perlu), atau horizontal (di sini Anda ingin menampilkan menu). Jika itu horisontal, mulailah memanggil metode lain- (void)scrollAwayMainView:(NSUInteger)pixels
,, kapantouchesMoved:
pun dipanggil, menghitung jumlah piksel dari titik awal tampilan utama seharusnya, dan meneruskan angka itu ke dalam metode. Dalam implementasi metode tersebut, jalankan kode berikut:sumber
Lihat solusi saya untuk pertanyaan ini:
Bagaimana cara membuat menu slide khusus tanpa perpustakaan pihak ketiga.?
Satu kelas tunggal yang Anda hanya perlu subkelas dan isi dengan konten.
Ini kelasnya. Untuk detail lebih lanjut, lihat tautan di atas.
sumber