3 回答
TA貢獻1951條經驗 獲得超3個贊
如果有人想知道如何在iOS 7+中實現此目標,請使用以下解決方案(也兼容iOS 6)
在Objective-C中
[self.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
self.navigationBar.translucent = YES;
在Swift 3(iOS 10)中
self.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationBar.shadowImage = UIImage()
self.navigationBar.isTranslucent = true
迅速2
self.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationBar.shadowImage = UIImage()
self.navigationBar.translucent = true
討論區
由于文檔中討論的行為,在導航欄上設置translucent為可以YES解決問題UINavigationBar。我將在這里報告相關片段:
如果將此屬性設置為YES帶有不透明自定義背景圖像的導航欄,則導航欄將對圖像應用小于1.0的系統不透明度。
TA貢獻1801條經驗 獲得超16個贊
在iOS5中,您可以執行以下操作以使導航欄透明:
nav.navigationBar.translucent = YES; // Setting this slides the view up, underneath the nav bar (otherwise it'll appear black)
const float colorMask[6] = {222, 255, 222, 255, 222, 255};
UIImage *img = [[UIImage alloc] init];
UIImage *maskedImage = [UIImage imageWithCGImage: CGImageCreateWithMaskingColors(img.CGImage, colorMask)];
[nav.navigationBar setBackgroundImage:maskedImage forBarMetrics:UIBarMetricsDefault];
[img release];
TA貢獻1806條經驗 獲得超5個贊
對于任何想要在Swift 2.x中執行此操作的人:
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.translucent = true
或Swift 3.x:
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
- 3 回答
- 0 關注
- 1008 瀏覽
添加回答
舉報
