iOS 找出導(dǎo)航欄下面的黑線(可隱藏,改變樣式等)

根據(jù)UI的設(shè)計(jì),navigationbar需要跟界面一體化,但是下面這根黑線是比較煩的問(wèn)題,可能界面一需要隱藏,界面二就要出現(xiàn),也可能需要改變粗細(xì)之類(lèi)的,又因?yàn)閚avigationbar會(huì)影響接下來(lái)的推棧,所以需要做一點(diǎn)小改動(dòng).
方法1:直接隱藏:
//在頁(yè)面出現(xiàn)的時(shí)候就將黑線隱藏起來(lái)
 -(void)viewWillAppear:(BOOL)animated
{
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:[UIImage new]];
}
//在頁(yè)面消失的時(shí)候就讓navigationbar還原樣式
-(void)viewWillDisappear:(BOOL)animated{
 
    [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:nil];
}
這個(gè)方法唯一的不好就是會(huì)影響導(dǎo)航欄的translucent(透明)屬性

方法2:找出黑線,再做處理:
//通過(guò)一個(gè)方法來(lái)找到這個(gè)黑線(findHairlineImageViewUnder):
 - (UIImageView *)findHairlineImageViewUnder:(UIView *)view {
    if ([view isKindOfClass:UIImageView.class] && view.bounds.size.height <= 1.0) {
        return (UIImageView *)view;
    }
    for (UIView *subview in view.subviews) {
        UIImageView *imageView = [self findHairlineImageViewUnder:subview];
        if (imageView) {
            return imageView;
        }
    }
    return nil;
}
//再定義一個(gè)imageview來(lái)等同于這個(gè)黑線 
 UIImageView *navBarHairlineImageView;
 navBarHairlineImageView = [self findHairlineImageViewUnder:self.navigationController.navigationBar];

同樣的在界面出現(xiàn)時(shí)候開(kāi)啟隱藏
 -(void)viewWillAppear:(BOOL)animated
{
 navBarHairlineImageView.hidden = YES;
}
//在頁(yè)面消失的時(shí)候就讓出現(xiàn)
 -(void)viewWillAppear:(BOOL)animated
{
 navBarHairlineImageView.hidden = NO;
}
如果想要做一些更好的處理,比如說(shuō)改變粗細(xì),顏色之類(lèi)的也在界面出現(xiàn)的時(shí)候?qū)懢托辛?
推薦使用第二種方法,因?yàn)檎麄€(gè)項(xiàng)目都在使用導(dǎo)航欄推棧,出棧,很可能因?yàn)楦淖兞藰邮?導(dǎo)致后面的屬性混亂起來(lái).

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容