Saya ingin membuat tombol "kembali" tanda panah kiri di a UIToolbar
.
Sejauh yang saya tahu, satu-satunya cara untuk mendapatkan salah satunya adalah dengan meninggalkan UINavigationController
pengaturan default dan menggunakan satu untuk item bar kiri. Tetapi tidak ada cara saya dapat menemukan untuk membuatnya sebagai UIBarButtonItem
, jadi saya tidak bisa membuatnya dalam standar UIToolbar
, meskipun mereka sangat mirip dengan UINavigationBar
s.
Saya dapat membuatnya secara manual dengan gambar tombol, tetapi saya tidak dapat menemukan gambar sumber di mana pun. Mereka memiliki tepi alpha-channel, sehingga screenshotting dan cutting tidak akan mendapatkan hasil yang sangat fleksibel.
Adakah ide di luar screenshotting untuk setiap skema ukuran dan warna yang ingin saya gunakan?
Pembaruan: TOLONG BERHENTI menghindari pertanyaan dan menyarankan agar saya tidak seharusnya menanyakan ini dan harus menggunakan UINavigationBar
. Aplikasi saya adalah Instapaper Pro. Ini hanya menampilkan bilah alat bawah (untuk menghemat ruang dan memaksimalkan area konten yang dapat dibaca), dan saya ingin meletakkan tombol Kembali yang berbentuk panah-kiri di bagian bawah.
Memberitahu saya bahwa saya seharusnya tidak perlu melakukan ini bukanlah jawaban dan tentu saja tidak pantas mendapatkan hadiah.
Jawaban:
Saya menggunakan psd berikut yang saya dapatkan dari http://www.teehanlax.com/blog/?p=447
http://www.chrisandtennille.com/pictures/backbutton.psd
Saya kemudian baru saja membuat UIView khusus yang saya gunakan di properti customView dari item toolbar.
Bekerja dengan baik untuk saya.
Sunting: Seperti yang ditunjukkan oleh PrairieHippo , maralbjo menemukan bahwa menggunakan kode sederhana berikut ini melakukan triknya (memerlukan gambar khusus dalam bundel) harus dikombinasikan dengan jawaban ini. Jadi di sini adalah kode tambahan:
sumber
Metode Unicode
Saya pikir itu jauh lebih mudah untuk hanya menggunakan karakter unicode untuk menyelesaikan pekerjaan. Anda dapat melihat melalui panah dengan googling baik Unicode Segitiga atau Unicode Arrows . Dimulai dengan iOS6 Apple mengubah karakter menjadi karakter emoji dengan batas. Untuk menonaktifkan perbatasan saya tambahkan Selektor Variasi Unicode 0xFE0E .
Blok kode hanya untuk demo. Ini akan bekerja di tombol apa saja yang menerima NSString.
Untuk daftar lengkap karakter, cari Google untuk karakter Unicode dan apa yang Anda inginkan. Inilah entri untuk Segitiga Menunjuk Kiri Hitam .
Hasil
sumber
PERINGATAN: Ada laporan bahwa ini tidak akan berfungsi di iOS 6. Ini mungkin hanya bekerja pada versi OS yang lebih lama. Jelas setidaknya satu dev telah ditolak aplikasi mereka karena menggunakan trik ini (lihat komentar). Gunakan dengan risiko Anda sendiri. Menggunakan gambar (lihat jawaban di atas) mungkin merupakan solusi yang lebih aman.
Ini dapat dilakukan tanpa menambahkan file gambar Anda sendiri menggunakan tombol sekr1t ketik 101 untuk mendapatkan bentuk yang benar. Bagi saya triknya adalah mencari tahu yang bisa saya gunakan
initWithCustomView
untuk membuatBarButtonItem
. Saya pribadi membutuhkan ini untuk navbar dinamis daripadatoolbar
, tetapi saya mengujinya dengan bilah alat dan kodenya hampir sama:Jika Anda melakukan ini pada bilah alat, Anda harus mengubah cara Anda mengatur item, tetapi itu tergantung pada sisa kode Anda dan saya membiarkannya sebagai latihan untuk pembaca. : P Sampel ini berfungsi untuk saya (dikompilasi & dijalankan).
Blah blah, baca HIG, jangan gunakan fitur tidak berdokumen, dan semua itu. Hanya ada enam jenis tombol yang didukung dan ini bukan salah satunya.
sumber
Pertama-tama Anda harus menemukan gambar tombol kembali. Saya menggunakan aplikasi yang bagus bernama Extractor yang mengekstrak semua gambar dari iPhone. Di iOS7 saya berhasil mengambil gambar yang dipanggil
UINavigationBarBackIndicatorDefault
dan itu dalam warna hitam, karena saya membutuhkan warna merahsaya mengubah warna menjadi merah menggunakan Gimp.EDIT:
Seperti yang disebutkan oleh btate dalam komentarnya, tidak perlu mengubah warna dengan editor gambar. Kode berikut harus melakukan trik:
Lalu saya membuat tampilan yang berisi imageView dengan panah itu, label dengan teks kustom dan di atas tampilan saya memiliki tombol dengan tindakan. Kemudian saya menambahkan animasi sederhana (fading dan terjemahan).
Kode berikut mensimulasikan perilaku tombol kembali termasuk animasi.
EDIT:
Alih-alih menambahkan tombol, menurut saya pendekatan yang lebih baik adalah dengan menggunakan pengenal isyarat.
sumber
imageView.tint = [UIColor redColor]
mode render warna dan template pada gambar.imageView.image = [yourImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
Saya tidak yakin apakah ini akan berhasil, tetapi Anda dapat mencoba membuat
UINavigationController
dengan pengaturan default untuk membuat tombol, menemukan tombol dalam hierarki subview pengendali navigasi, memanggilnyaremoveFromSuperview
, menghancurkan pengontrol navigasi, dan kemudian menambahkan tombol sebagai subview dari toolbar Anda. Anda juga mungkin perluretain
dan tombol sebelum memanggilremoveFromSuperview
(dan kemudianrelease
setelah menambahkannya sebagai subview dari toolbar Anda) untuk menghindari itu tidak dialokasikan selama proses.sumber
Untuk membuat UIButton dengan panah cukup dekat (saya bukan desainer;) ke panah kembali sistem iOS 7:
Standar:
Apple SD Gothic Neo
Dalam Xcode:
Jawaban Ref @ staticVoidMan untuk panah Kembali-suka di iOS 7
sumber
Jika Anda tidak ingin repot dengan file gambar, bentuk panah dapat digambar dalam subkelas UIView dengan kode berikut:
di mana tampilan panah sebanding dengan lebar 6,0 dan tinggi 10,0
sumber
Bekerja untukku. Saya menggunakan ini ketika saya memiliki lebih banyak tab kemudian bisa muat pada bilah tab, dan pengontrol tampilan didorong dari "Lebih" mengesampingkan leftBarButtonItem di viewDidLoad.
sumber
Anda dapat menemukan gambar sumber dengan mengekstraknya dari Other.artwork di UIKit $ {SDKROOT} /System/Library/Frameworks/UIKit.framework/Other.artwork. Komunitas modding memiliki beberapa alat untuk mengekstraksi mereka, di sini . Setelah Anda mengekstrak gambar, Anda dapat menulis beberapa kode untuk mewarnai ulang sesuai kebutuhan dan mengaturnya sebagai gambar tombol. Apakah Anda benar-benar dapat mengirimkan barang seperti itu (karena Anda sedang menanamkan karya seni yang diturunkan) mungkin sedikit tidak pasti, jadi mungkin Anda ingin berbicara dengan seorang pengacara.
sumber
Perpustakaan Three20 memiliki cara untuk melakukan ini:
sumber
Saya menemukan bahwa menggunakan kode sederhana berikut melakukan trik (memerlukan gambar kustom dalam bundel):
sumber
Inilah yang akhirnya saya lakukan setelah mencari semua solusi ini dan yang lainnya. Ini menggunakan png merenggang diekstraksi dari gambar stok UIKit. Dengan cara ini Anda dapat mengatur teks ke apa pun yang Anda sukai
sumber
Sangat mudah dilakukan dengan Interface Builder di Xcode 5.x
menggunakan Bilah Alat dan Item Tombol Bar dari Pustaka objek
di bagian Atribut inspektur tombol edit gambar dengan gambar tombol kembali Anda
Selesai!
sumber
Saya mencoba melakukan hal yang sama, tetapi saya ingin tombol kembali berada di bilah navigasi. (Saya benar-benar membutuhkan tombol kembali, yang akan melakukan lebih dari hanya kembali, jadi saya harus menggunakan properti leftBarButtonItem). Saya mencoba apa yang disarankan AndrewS, tetapi di bilah navigasi tidak akan terlihat seperti seharusnya, karena UIButton semacam itu dicor ke UIBarButtonItem.
Tetapi saya menemukan cara untuk mengatasi ini. Saya sebenarnya hanya meletakkan UIView di bawah UIButton dan mengatur customView untuk UIBarButtonItem. Ini kodenya, jika seseorang membutuhkannya:
sumber
Untuk membuat gambar untuk UIToolbar, buat png di photoshop dan WHERE EVER ada warna APA itu putih, dan di mana itu alpha = 0 maka ia meninggalkannya sendiri.
SDK sebenarnya menempatkan perbatasan di sekitar ikon yang Anda buat dan mengubahnya menjadi putih tanpa Anda harus melakukan apa pun.
Lihat, ini adalah apa yang saya buat di Photoshop untuk tombol maju saya (jelas bertukar sekitar untuk tombol kembali):
http://twitpic.com/1oanv
dan inilah yang tampak seperti di Interface Builder
http://twitpic.com/1oaoa
sumber
Solusi TANPA menggunakan png. Berdasarkan jawaban SO ini: Menambahkan panah kecil ke sisi kanan sel dalam iPhone TableView Cell
Hanya membalik UITableViewCell secara horizontal!
sumber
Swift 5.2 Xcode 11.4
Apple Symbol chevron.left sekarang memungkinkan solusi yang lebih elegan untuk membuat tombol kustom. Saya telah mencocokkan ukuran dan jarak sedekat mungkin.
Ini dapat diimplementasikan baik sebagai
UIToolbarItem
, atau aUINavigationItem
Jika Anda ingin membalik tombol dan mengarahkan panah ke kanan:
Gunakan Simbol Apple bernama "chevron.right"
Tambahkan kode berikut ke
CustomBackButton
kelas:sumber
Jika Anda ingin menghindari menggambar sendiri, Anda dapat menggunakan kelas tidak berdokumen: UINavigationButton dengan gaya 1. Ini tentu saja dapat menghentikan aplikasi Anda agar tidak disetujui ... / John
sumber
Nah, Anda tidak harus memiliki tombol berbeda untuk setiap ukuran, Anda dapat menggunakan
[UIImage stretchableImageWithLeftCapWidth:topCapHeight:]
, tetapi satu-satunya hal yang saya temukan adalah gambar khusus.sumber
Saya memiliki masalah yang sama, dan keluar satu perpustakaan PButton . Dan sampelnya adalah tombol navigasi belakang seperti tombol, yang dapat digunakan di mana saja seperti tombol yang disesuaikan.
Sesuatu seperti ini:
sumber
Contoh dalam Swift 3, dengan tombol sebelumnya dan berikutnya di kanan atas.
sumber
Cepat
sumber
Coba ini. Saya yakin Anda tidak memerlukan gambar tombol kembali untuk membuatnya.
Itu yang harus Anda lakukan :)
sumber
Mengapa kau melakukan ini? Jika Anda menginginkan sesuatu yang terlihat seperti bilah navigasi, gunakan UINavigationBar.
Bilah alat memiliki gaya visual spesifik yang terkait dengannya. Panduan Antarmuka Manusia untuk kondisi iPhone:
Ini kemudian memberikan beberapa contoh visual dari ikon persegi kira-kira tanpa teks. Saya ingin Anda mengikuti HIG dalam hal ini.
sumber