国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

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

2019-10-21 18:46:26
字體:
來源:轉載
供稿:網友

網上有很多關于隱藏的方法,設置后能夠成功,但是跳轉到其他界面的時候發現,其他界面橫線也被隱藏了。

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

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

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

通過xcode查看UINavigationBar的樹形結構發現,可以很清楚的看出橫線就是下面的_UIBarBackground下面的UIImageView對象

ios,導航欄去掉線,ios去掉導航欄的線,導航欄底部橫線

ios,導航欄去掉線,ios去掉導航欄的線,導航欄底部橫線

樹形結構如下

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

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

遍歷UINavigationBar所有的子view獲取子view的數組。

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;}

遍歷數組找到橫線對應的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){     //實踐后發現系統的橫線高度為0.333      self.shadowImage = (UIImageView *)view;    }  }  self.shadowImage.hidden = YES;}

最后在viewDidDisappear方法里面還原顯示狀態。

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

運行后發現完美解決

ios,導航欄去掉線,ios去掉導航欄的線,導航欄底部橫線

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 商都县| 德惠市| 冕宁县| 嘉荫县| 甘孜县| 堆龙德庆县| 大余县| 崇文区| 安顺市| 定襄县| 天柱县| 渝北区| 略阳县| 无极县| 长垣县| 谷城县| 南木林县| 东阿县| 七台河市| 玛多县| 稻城县| 宝清县| 昌邑市| 读书| 石景山区| 蓝山县| 丹寨县| 开远市| 天峨县| 宜兰市| 顺平县| 长岭县| 贵溪市| 富阳市| 临江市| 崇信县| 正镶白旗| 铜陵市| 车险| 罗定市| 湟源县|