導(dǎo)航欄不同于其他view,簡單的設(shè)置alpha并不能達(dá)到預(yù)想的效果。我在多次嘗試之后得出一個(gè)最有效的方式。

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的石家莊網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
簡單的讓導(dǎo)航欄變透明只需要設(shè)置下面三個(gè)屬性:
但是這樣做有個(gè)問題,就是返回按鈕和title一起變透明了,解決方法是不要通過alpha來改變透明度,而是通過改變backgroundImage的透明度來實(shí)現(xiàn)。如何改變圖片的透明度呢,送上一個(gè)方法,你只需要創(chuàng)建一個(gè)UIImage的分類,實(shí)現(xiàn)這個(gè)方法,在需要的時(shí)候引入這個(gè)分類就可以使用了。
這樣以來,你只需要將你需要的圖片(也許是一張純色)通過 setBackgroundImage:forBarMetrics: 方法設(shè)置為背景圖片即可。
通過view的滾動實(shí)現(xiàn)一開始navigationBar隱藏,然后漸顯的效果還難嗎?
不過你可能發(fā)現(xiàn),頁面剛剛顯示還沒有滾動的時(shí)候,導(dǎo)航欄又不透明了,如果你不幸遇到這種狀況,其實(shí)也很簡單
是不是非常簡單?喜歡的話記得點(diǎn)紅心??啊。也歡迎評論與我交流????
1.將狀態(tài)欄和導(dǎo)航條設(shè)置成透明
2.設(shè)置導(dǎo)航背景
3.顯示不透明導(dǎo)航
4.設(shè)置狀態(tài)條背景顏色
上一篇說到 自定義導(dǎo)航欄 ,若自定義的導(dǎo)航欄中設(shè)置了屬性translucent = NO(作用是去掉顏色渲染,若為YES,與你想要的顏色存在一點(diǎn)的色差),導(dǎo)航欄的透明度會遇到問題。
若我們需要設(shè)置導(dǎo)航欄透明:正常的情況下,我們只需要這么做:
ios 開發(fā)中設(shè)置導(dǎo)航欄透明的方法:
說明:讓導(dǎo)航欄變透明只需要設(shè)置下面三個(gè)屬性即可。
[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc]init] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc]init]];
self.navigationController.navigationBar.alpha = 0;
但這樣做有個(gè)問題,就是返回按鈕和title一起變透明了,解決方法是不要通過alpha來改變透明度,而是通過改變backgroundImage的透明度來實(shí)現(xiàn)。如何改變圖片的透明度呢,送上一個(gè)方法,只需要創(chuàng)建一個(gè)UIImage的分類,實(shí)現(xiàn)這個(gè)方法,在需要的時(shí)候引入這個(gè)分類就可以使用了。
- (UIImage *)imageByApplyingAlpha:(CGFloat) alpha{
UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGRect area = CGRectMake(0, 0, self.size.width, self.size.height);
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -area.size.height);
CGContextSetBlendMode(ctx, kCGBlendModeMultiply);
CGContextSetAlpha(ctx, alpha);
CGContextDrawImage(ctx, area, self.CGImage);
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
最終設(shè)置效果還是通過alpha設(shè)置。
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
self.navigationController.navigationBar.alpha = 0;
}
網(wǎng)頁名稱:ios開發(fā)導(dǎo)航欄透明,ios底部菜單欄透明
網(wǎng)頁路徑:http://chinadenli.net/article39/dseepph.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站策劃、網(wǎng)站導(dǎo)航、軟件開發(fā)、做網(wǎng)站、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)