導(dǎo)航欄不同于其他view,簡(jiǎn)單的設(shè)置alpha并不能達(dá)到預(yù)想的效果。我在多次嘗試之后得出一個(gè)最有效的方式。
在黔江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),營(yíng)銷(xiāo)型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),黔江網(wǎng)站建設(shè)費(fèi)用合理。
簡(jiǎn)單的讓導(dǎo)航欄變透明只需要設(shè)置下面三個(gè)屬性:
但是這樣做有個(gè)問(wèn)題,就是返回按鈕和title一起變透明了,解決方法是不要通過(guò)alpha來(lái)改變透明度,而是通過(guò)改變backgroundImage的透明度來(lái)實(shí)現(xiàn)。如何改變圖片的透明度呢,送上一個(gè)方法,你只需要?jiǎng)?chuàng)建一個(gè)UIImage的分類,實(shí)現(xiàn)這個(gè)方法,在需要的時(shí)候引入這個(gè)分類就可以使用了。
這樣以來(lái),你只需要將你需要的圖片(也許是一張純色)通過(guò) setBackgroundImage:forBarMetrics: 方法設(shè)置為背景圖片即可。
通過(guò)view的滾動(dòng)實(shí)現(xiàn)一開(kāi)始navigationBar隱藏,然后漸顯的效果還難嗎?
不過(guò)你可能發(fā)現(xiàn),頁(yè)面剛剛顯示還沒(méi)有滾動(dòng)的時(shí)候,導(dǎo)航欄又不透明了,如果你不幸遇到這種狀況,其實(shí)也很簡(jiǎn)單
是不是非常簡(jiǎn)單?喜歡的話記得點(diǎn)紅心??啊。也歡迎評(píng)論與我交流????
Swift版導(dǎo)航欄適配參考
在iOS 13中給導(dǎo)航的 UINavigationBar 增加了 scrollEdgeAppearance 屬性應(yīng)用在iOS 14及更早版本的大標(biāo)題導(dǎo)航欄上,在iOS 15中 scrollEdgeAppearance 屬性適用于所有的導(dǎo)航欄
官方解釋:描述當(dāng)關(guān)聯(lián)的UIScrollView到達(dá)與導(dǎo)航條相鄰的邊緣(導(dǎo)航條的上邊緣)時(shí)要使用的導(dǎo)航條的外觀屬性。如果沒(méi)有設(shè)置,將使用修改后的standardAppearance
scrollEdgeAppearance 與 standardAppearance 一樣同屬于 UINavigationBarAppearance 類型 父類是 UIBarAppearance
其中影響導(dǎo)航欄顏色、陰影涉及到以下屬性
因?yàn)?scrollEdgeAppearance = nil ,當(dāng)前控制器如果使用有 ScrollView 類的控件,當(dāng) ScrollView 向上滾動(dòng)時(shí) scrollEdgeAppearance 會(huì)默認(rèn)使用 standardAppearance 的屬性效果。所以 backgroundEffect 和 shadowColor 屬性需要顯式設(shè)置為nil,以防止 backgroundEffect、shadowColor 有顏色值影響導(dǎo)航欄透明效果。
下一篇:Swift版導(dǎo)航欄適配
PERFECT!
在點(diǎn)擊push下一個(gè)頁(yè)面時(shí),因?yàn)楦鞣N原因,點(diǎn)一下cell或按鈕沒(méi)有響應(yīng),用戶可能就多點(diǎn)幾下,這時(shí)候會(huì)打開(kāi)好幾個(gè)一樣的頁(yè)面。
這是因?yàn)閜ush后的頁(yè)面有耗時(shí)操作或者剛好push到另一個(gè)頁(yè)面時(shí),另一個(gè)頁(yè)面正好在reloadData卡住主線程。造成點(diǎn)擊cell時(shí)卡住了。
這時(shí),我們可以通過(guò)重寫(xiě)導(dǎo)航控制器的方法來(lái)解決這個(gè)問(wèn)題。
#import UIKit/UIKit.h
@interfaceNaviViewController?:?UINavigationController
@end
#import "NaviViewController.h"
@interfaceNaviViewController?()
//?記錄push標(biāo)志
@property(nonatomic,getter=isPushing)BOOLpushing;
@end
@implementationNaviViewController
-?(void)viewDidLoad?{
? ? ? [superviewDidLoad];
? ? ? ?self.delegate=self;
}
-?(void)pushViewController:(UIViewController*)viewControlleranimated:(BOOL)animated?{
? ? if(self.pushing==YES)?{
? ? ? ? ? ? ?NSLog(@"被攔截");
? ? ? ? ? ? ?return;
? ? }else{
? ? ? ? ? ? ?NSLog(@"push");
? ? ? ? ? ? ?self.pushing=YES;
? ? }
[superpushViewController:viewControlleranimated:animated];
}
#pragma?mark?-?UINavigationControllerDelegate
-(void)navigationController:(UINavigationController*)navigationControllerdidShowViewController:(UIViewController*)viewControlleranimated:(BOOL)animated?{
? ? ? ? ?self.pushing=NO;
}
@end
網(wǎng)頁(yè)標(biāo)題:ios開(kāi)發(fā)導(dǎo)航欄,ios桌面導(dǎo)航
網(wǎng)站URL:http://chinadenli.net/article36/dsishpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、Google、全網(wǎng)營(yíng)銷(xiāo)推廣、品牌網(wǎng)站制作、響應(yīng)式網(wǎng)站、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)