Saya mencoba menambahkan label ke toolbar saya. Tombol berfungsi dengan baik, namun ketika saya menambahkan objek label, itu macet. Ada ide?
UIBarButtonItem *setDateRangeButton = [[UIBarButtonItem alloc] initWithTitle:@"Set date range"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(setDateRangeClicked:)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 20, 20)];
label.text = @"test";
[toolbar setItems:[NSArray arrayWithObjects:setDateRangeButton,label, nil]];
// Add the toolbar as a subview to the navigation controller.
[self.navigationController.view addSubview:toolbar];
// Reload the table view
[self.tableView reloadData];
ios
iphone
uibarbuttonitem
pengguna8359
sumber
sumber
Bagi mereka yang menggunakan Interface Builder untuk mengatur tata letak Anda
UIToolBar
, juga memungkinkan untuk melakukan ini hanya dengan menggunakan Interface Builder.Untuk menambahkan a
UILabel
keUIToolBar
Anda perlu menambahkanUIView
objek generik keUIToolBar
dalam IB Anda dengan menyeretUIView
objek baru di atas AndaUIToolBar
.IB
secara otomatis akan membuatUIBarButtonItem
yang akan diinisialisasi dengan kustom AndaUIView
. Selanjutnya, tambahkan aUILabel
keUIView
dan edit secaraUILabel
grafis agar sesuai dengan gaya pilihan Anda. Anda kemudian dapat secara visual mengatur spacer tetap dan / atau variabel sesuai keinginan untuk memposisikan Anda denganUILabel
tepat.Anda juga harus mengatur latar belakang dari kedua
UILabel
danUIView
untukclearColor
mendapatkanUIToolBar
untuk menunjukkan melalui dengan benar di bawahUILabel
.sumber
Saya menemukan jawaban answerBot sangat berguna, tetapi saya pikir saya menemukan cara yang lebih mudah, di Interface Builder:
colokkan BarButtonItem ini ke properti di kelas Anda (ini di Swift, tapi akan sangat mirip di Obj-C):
tambahkan properti lain untuk Label itu sendiri:
di viewDidLoad, tambahkan kode berikut untuk menyetel properti label Anda, dan tambahkan sebagai customView dari BarButtonItem Anda
Untuk memperbarui
UILabel
teks:Hasil:
Anda harus menelepon
lastUpdateLabel.sizetoFit()
setiap kali Anda memperbarui teks labelsumber
UILabel* label = [[UILabel alloc] init]; label.text = @"Hello"; label.font = [UIFont systemFontOfSize:16]; [label sizeToFit]; self.barItem.customView = label;
Salah satu hal yang saya gunakan untuk trik ini adalah untuk membuat contoh
UIActivityIndicatorView
di atasUIToolBar
, sesuatu yang sebaliknya tidak mungkin dilakukan. Misalnya di sini saya memiliki aUIToolBar
dengan 2UIBarButtonItem
, aFlexibleSpaceBarButtonItem
, dan kemudian yang lainnyaUIBarButtonItem
. Saya ingin memasukkan aUIActivityIndicatorView
keUIToolBar
antara ruang fleksibel dan tombol (kanan) terakhir. Jadi dalam diri saya,RootViewController
saya melakukan hal berikut,sumber
Detail
Sampel lengkap
Hasil
sumber
Mirip dengan Matt RI menggunakan pembuat antarmuka. Tetapi saya ingin memiliki 1
UIWebView
di dalamnya sehingga saya dapat memiliki beberapa teks yang dicetak tebal dan teks lainnya tidak (seperti aplikasi email). BegituIBOutlet
html
untuk memiliki latar belakang transparan sehingga bilah alat bersinarKode:
sumber
Jika Anda ingin menambahkan tampilan ke atas tampilan toolbar, Anda dapat mencoba ini:
sumber
Coba ini:
Catatan:
self.barItem
adalahUIBarButtonItem
ditambahkan dari perpustakaan objek dan ditempatkan di antara dua ruang yang fleksibel.Cara lain adalah dengan menghapus
[self.barItem setCustom:view]
garis dan mengubah parameterlabel
(lebar) sehingga memenuhi seluruh toolbar dan mengatur kesejajaran ke tengah dan font sendiri dalam kode,sumber