欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS如何去掉導航欄(UINavigationBar)下方的橫線

 更新時間:2017年05月18日 11:19:44   作者:BrandonYum  
本篇文章主要介紹了iOS如何去掉導航欄(UINavigationBar)下方的橫線,非常具有實用價值,需要的朋友可以參考下

網(wǎng)上有很多關(guān)于隱藏的方法,設(shè)置后能夠成功,但是跳轉(zhuǎn)到其他界面的時候發(fā)現(xiàn),其他界面橫線也被隱藏了。

目前主流的方法是將shadowImage用一張空的圖片圖片替換掉

可是這種方法不能解決navigationController里面的某個界面隱藏,其他不變的問題。

[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [[UIImage alloc] init];

通過xcode查看UINavigationBar的樹形結(jié)構(gòu)發(fā)現(xiàn),可以很清楚的看出橫線就是下面的_UIBarBackground下面的UIImageView對象


樹形結(jié)構(gòu)如下

**UINavigationBar**
**--[ 1] _UIBarBackground**
**----[ 2] UIImageView**
**----[ 2] UIVisualEffectView**
**------[ 3] _UIVisualEffectBackdropView**
**------[ 3] _UIVisualEffectFilterView**
**--[ 1] UINavigationButton**
**----[ 2] UIButtonLabel**
**--[ 1] _UINavigationBarBackIndicatorView**

所以能不能遍歷UINavigationBar的所有子view然后找到橫線對應的UIImageView對象,隱藏掉呢?

遍歷UINavigationBar所有的子view獲取子view的數(shù)組。

NSArray *allSubviews(UIView *aView) {
 NSArray *results = [aView subviews];
 for (UIView *eachView in aView.subviews)
 {
   NSArray *subviews = allSubviews(eachView);
   if (subviews)
     results = [results arrayByAddingObjectsFromArray:subviews];
 }
 return results;
}

遍歷數(shù)組找到橫線對應的UIImageView對象

@property (nonatomic, strong) UIImageView *shadowImage;
- (void)viewWillAppear:(BOOL)animated{
  [super viewWillAppear:animated];
  NSArray *subViews = allSubviews(self.navigationController.navigationBar);
  for (UIView *view in subViews) {
    if ([view isKindOfClass:[UIImageView class]] && view.bounds.size.height<1){
     //實踐后發(fā)現(xiàn)系統(tǒng)的橫線高度為0.333
      self.shadowImage = (UIImageView *)view;
    }
  }
  self.shadowImage.hidden = YES;
}

最后在viewDidDisappear方法里面還原顯示狀態(tài)。

- (void)viewWillDisappear:(BOOL)animated{
  [super viewWillDisappear:animated];
  self.shadowImage.hidden = NO;
}

運行后發(fā)現(xiàn)完美解決

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS點擊推送消息跳轉(zhuǎn)處理

    iOS點擊推送消息跳轉(zhuǎn)處理

    這篇文章主要介紹了iOS點擊推送消息跳轉(zhuǎn)處理 的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • IOS之UIWebView的使用(基本知識)

    IOS之UIWebView的使用(基本知識)

    在Android開發(fā)中有WebView作為混合模式開發(fā)的橋梁,當然在IOS中也同樣有一個 UIWebView 組件來作為混合模式開發(fā)的橋梁,那么下面就對UIWebView的一些基本知識詳解一下
    2016-02-02
  • iOS如何獲取最頂層ViewController詳解

    iOS如何獲取最頂層ViewController詳解

    這篇文章主要給大家介紹了關(guān)于iOS如何獲取最頂層ViewController的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • iOS多線程實現(xiàn)多圖下載功能

    iOS多線程實現(xiàn)多圖下載功能

    這篇文章主要為大家詳細介紹了iOS多線程實現(xiàn)多圖下載功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • iOS中使用UItableviewcell實現(xiàn)團購和微博界面的示例

    iOS中使用UItableviewcell實現(xiàn)團購和微博界面的示例

    這篇文章主要介紹了iOS中使用UItableviewcell實現(xiàn)團購和微博界面的示例,開發(fā)語言基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2016-01-01
  • iOS 驗證碼按鈕倒計時功能

    iOS 驗證碼按鈕倒計時功能

    在app注冊或者登錄需要驗證碼的地方、為了避免短時間內(nèi)刷驗證碼、往往會加上一層驗證當?shù)褂嫊r結(jié)束后、可以重新獲取,關(guān)于ios 驗證碼按鈕倒計時功能大家可以參考下本文
    2017-07-07
  • iOS點擊推送消息跳到應用指定頁面方法

    iOS點擊推送消息跳到應用指定頁面方法

    現(xiàn)在的推送用的越來越頻繁,幾乎每個應用都開始用到了。這篇文章主要介紹了iOS點擊推送消息跳到應用指定頁面方法,有需要的可以了解一下。
    2016-11-11
  • IOS HTTP請求的常見狀態(tài)碼總結(jié)

    IOS HTTP請求的常見狀態(tài)碼總結(jié)

    這篇文章主要介紹了IOS HTTP請求的常見狀態(tài)碼總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Flutter CustomPaint自定義繪畫示例詳解

    Flutter CustomPaint自定義繪畫示例詳解

    這篇文章主要為大家介紹了Flutter CustomPaint自定義繪畫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 詳解iOS的UI開發(fā)中控制器的創(chuàng)建方法

    詳解iOS的UI開發(fā)中控制器的創(chuàng)建方法

    這篇文章主要介紹了iOS的UI開發(fā)中控制器的創(chuàng)建方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-11-11

最新評論