現(xiàn)在越來越多UI都會(huì)有隱藏導(dǎo)航欄的需求巍沙,像鵝廠的這種:
大部分的解決方案就是官方的那種:
[[UINavigationBar appearance] setShadowImage:[UIImage new]];
一勞永逸饥伊,但是有個(gè)問題象浑,這樣寫了之后,想要恢復(fù)很麻煩琅豆,搜羅了一下解決方案愉豺,集百家之長,總結(jié)一下茫因。
@property (weak, nonatomic) UIView * navLine;
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){
NSArray *list=self.navigationController.navigationBar.subviews;
for (id obj in list) {
if ([obj isKindOfClass:[UIView class]]) {
UIImageView *imageView=(UIImageView *)obj;
NSArray *list2 = imageView.subviews;
for (id obj2 in list2) {
if ([obj2 isKindOfClass:[UIImageView class]]) {
if (CGRectGetHeight([obj2 frame]) == 0.5) {
_navLine = (UIImageView *)obj2;
}
}
}
}
}
}
[_navLine setHidden:YES];
NSLog(@"_navLine---%@",_navLine);
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[_navLine setHidden:NO];
}
done蚪拦!但是有個(gè)小小的問題,就是跳轉(zhuǎn)的時(shí)候分割線的出現(xiàn)有點(diǎn)跳戲冻押,這個(gè)還沒有什么好辦法解決驰贷,如果道友有好的解決方案,請(qǐng)告知一下洛巢,多謝括袒!
收工,繼續(xù)搬磚稿茉。