1. 程式人生 > >navigationController.navigationBar 設定背景透明

navigationController.navigationBar 設定背景透明

以前一直沒用過帶透明的導航欄圖片,現在專案要用到這樣的。以為放上圖片就是自動透明瞭

可是,發現透明那部竟然是黑的。無論怎麼clearcolor 都不行。百度了很多頁也沒有查到可以用的方法。

最後在http://stackoverflow.com 找到一個關鍵點  :

viewDidLoad

。導航自定義圖片設定這裡也順便貼出來吧

- (void) setNavBarImg:(UINavigationBar *)navBar
{
#define kSCNavBarImageTag 10
    
    if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)])
    {
        //if iOS 5.0 and later
        [navBar setBackgroundImage:ThemeImageName(@"
[email protected]
") forBarMetrics:UIBarMetricsDefault]; } else { UIImageView *imageView = (UIImageView *)[navBar viewWithTag:kSCNavBarImageTag]; [imageView setBackgroundColor:ClearColor]; if (imageView == nil) { imageView = [[UIImageView alloc] initWithImage: ThemeImageName(@"
[email protected]
")]; [imageView setTag:kSCNavBarImageTag]; [navBar insertSubview:imageView atIndex:0]; } } }

如果你的圖片是有透明的。如果你在百度裡搜。那你真的要搜死了。。

方法:

    [self.navigationController.navigationBar setTranslucent:YES];
//    為什麼要加這個呢,shadowImage 是在ios6.0以後才可用的。但是發現5.0也可以用。不過如果你不判斷有沒有這個方法,
//    而直接去呼叫可能會crash,所以判斷下。作用:如果你設定了上面那句話,你會發現是透明瞭。但是會有一個陰影在,下面的方法就是去陰影
    if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)])
    {
        [self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];
    }
//    以上面4句是必須的,但是習慣還是加了下面這句話
    [self.navigationController.navigationBar setBackgroundColor:ClearColor];


這裡要感謝萬能的  Google   ,鄙視度娘   鄙視xxxx(你懂的)......

相關推薦

navigationController.navigationBar 設定背景透明

以前一直沒用過帶透明的導航欄圖片,現在專案要用到這樣的。以為放上圖片就是自動透明瞭 可是,發現透明那部竟然是黑的。無論怎麼clearcolor 都不行。百度了很多頁也沒有查到可以用的方法。 最後在http://stackoverflow.com 找到一個關鍵點  : vie

activity設定背景透明及遇到的坑

<style name="MyDialogStyleBottom" parent="Theme.AppCompat.Light.NoActionBar" > <item

Dialog設定背景透明無效,在安卓5.0系統上無效解決方法!

困擾了大半天的一個問題,寫一個關閉按鈕突出的dialog,在eclipse上面寫的Demo,然後執行在魅族,紅米,華為手機上都沒問題,都能正常的突出按鈕(其中魅族手機和華為手機都是5.0以上的系統),

android webview 設定背景透明

android WebView 設定背景色為透明色 在網上找了好多的方法都試過了都不行 1.直接設定成background 為透明色或者透明圖片(無效) android:background="@android:color/transparent" 2.設

設定 navigationbar 設定透明呢, 但是返回按鈕不透明

可以在 viewWillAppear 設定成透明 self.navigationController.navigationBar.shadowImage = [UIImage new]; [se

input設定背景透明

文章摘抄 http://blog.sina.com.cn/s/blog_45cfbac80100ngkd.html http://www.w3school.com.cn/cssref/pr_background-color.asp <BODY bgcolor= "blue "> <

sublime 設定背景透明度 下載sublime 透明背景外掛

下載sublime 透明背景外掛 我用的是git下載外掛:     git clone https://github.com/vhanla/SublimeTextTrans.git 然後,開啟sublime 選項卡&nbs

74 - three.js 筆記 - 通過透明渲染設定背景圖片

1、示例 示例 http://ithanmang.com/threeJs/home/201809/20180910/01-canvas-background-image.html 效果 2、實現步驟 2.1、背景圖 2.2、設定背景 此處是給body元素設定了背景

MFC控制元件背景透明設定

這種方法只適用於下面這些控制元件 CTLCOLOR_BTN   Button control CTLCOLOR_DLG   Dialog box CTLCOLOR_EDIT   Edit control CTLCOLOR_LISTBOX   List-box cont

css設定透明背景顏色並且內容不會受影響的解決辦法

background-color:rgba(0,0,0,0.5); 0,0,0,0.5 其中0,0,0代表RGB顏色 0.5代表透明度 所以展示為黑色半透明狀態並且不會影響內容也為半透明狀態

iframe設定無邊框背景透明

一般我們設定iframe無邊框背景透明程式碼如下: <iframe style="border:0;background:none;"></iframe> 現代瀏覽器如chome,firefox用上述程式碼即可實現,當

ie7、8設定iframe無邊框背景透明

一般我們設定iframe無邊框背景透明程式碼如下: <iframe style="border:0;background:none;"></iframe> 現代瀏覽器如chome,firefox用上述程式碼即可實現,當

Qt中設定QML窗體無邊框和背景透明

主要程式碼在(main()函式中)如下: //設定窗體無邊框 view.setWindowFlags(Qt::FramelessWindowHint); //設定整個窗體背景為透明 view.setAttribute(Qt::WA_TranslucentBac

MFC學習之 對話方塊設定背景顏色及控制元件透明的方法

對話方塊設定背景色之後控制元件不透明的問題。 1.對話方塊設定背景色: 方法1:(用OnPaint()) 在Dlg.h中:宣告 afx_msg void OnPaint();                                HICON m_hIcon; 在Dl

Android 首頁當ScrollView向上滑動時,設定標題欄的背景透明變化

頁面整個佈局大體上是ScrollView裡面包含了一個ImageView和RecyclerView,所以先得到ImageView的高度,當ScrollView向上滑動時,設定標題欄的背景色、文字顏色,當超過ImageView的高度時,設定其背景為白色,字型為黑色。 重寫ScrollV

mfc 編輯框背景透明設定

前幾天和風在這裡討論關於CEdit控制元件的透明問題。主要的目的就是要做一個有圖形背景的Edit控制元件,經過一番努,終於做出了一個還算象樣的Edit控制元件。 做一個透明的Edit控制元件的主要問題是字元的輸出,在Edit裡輸出的重新整理有幾個時機,一個是在接收到鍵盤或

Android設定窗體Activity背景透明

背景透明 style.xml <item name="android:windowBackground">@color/transparent</item>

android 自定義Dialog背景透明及顯示位置設定(轉載)

<?xml version="1.0" encoding="utf-8"?><LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  a

設定透明遮罩背景

半透明遮罩背景常用於彈窗的背景 如下所示: 程式碼如下所示: .overlay { top: 0; left: 0; bottom: 0; right: 0; background: rgba(0, 0, 0, 0.7);

android對話方塊程式碼中設定背景透明

<span style="font-size:18px;">//建立背景透明的對話方塊 AlertDialog.THEME_HOLO_LIGHT AlertDialog.Builder b = new AlertDialog.Builder(myContex