Saya ingin UINavigationBar di aplikasi saya sepenuhnya transparan dan rata dengan viewcontroller langsung di bawahnya. Namun, satu-satunya kode yang dapat saya temukan membuatnya tembus tetapi tidak transparan. Saya tahu ini bisa dilakukan di iOS 7 karena digunakan di aplikasi catatan. Pertanyaan saya adalah, kode apa yang mereka gunakan untuk melakukannya?
cocoa-touch
uinavigationbar
transparency
translucency
cory ginsberg
sumber
sumber
self.edgesForExtendedLayout = UIRectEdgeNone;
Untuk Swift3 dan Swift4
Untuk Swift2.2
Untuk Objective-C
sumber
Solusi mandiri sebagai Kategori Objective-C:
UINavigationController + TransparentNavigationController.h
UINavigationController + TransparentNavigationController.m
Sekarang, Anda dapat mengimpor kategori di Anda
UIViewController
dan memanggil metode pada pengontrol navigasi Anda - misalnya:Dan solusi serupa di Swift :
sumber
hideTransparentNavigationBar()
harus mengatur ulang kembali.viewDidHide
dari pengendali tampilan induk.Alan lupa satu baris
Jadi saya punya:
sumber
@ Jawaban bagus Zorayr direvisi menjadi Swift 3:
sumber
Swift 4.2 dan iOS 12
Ternyata yang benar-benar Anda butuhkan adalah kode di bawah ini. Ini berfungsi dengan baik ketika Anda memasukkannya ke dalam
viewDidLoad()
.sumber
Gunakan UINavigationBar + Addition pod, lalu panggil saja:
sumber
[(UIView *) [self.navigationController.navigationBar.subviews objekAtIndex: 0] setAlpha: 0.0f];
Satu baris itu sepertinya bekerja dengan baik untukku
sumber