- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint translation = [scrollView.panGestureRecognizer translationInView:scrollView.superview];
if (translation.y>0) {
[UIView animateWithDuration:0.3 animations:^{
[self setTabBarHidden:NO];
[self.navigationController setNavigationBarHidden:NO animated:YES];
NSLog(@"chuxian");
}];
}else if(translation.y<0){
[UIView animateWithDuration:0.3 animations:^{
[self setTabBarHidden:YES];
[self.navigationController setNavigationBarHidden:YES animated:YES];
NSLog(@"xiaosi");
}];
}
}
//隐藏显示tabbar
- (void)setTabBarHidden:(BOOL)hidden
{
UIView *tab = self.tabBarController.view;
CGRect tabRect=self.tabBarController.tabBar.frame;
if ([tab.subviews count] < 2) {
return;
}
UIView *view;
if ([[tab.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]]) {
view = [tab.subviews objectAtIndex:1];
} else {
view = [tab.subviews objectAtIndex:0];
}
if (hidden) {
view.frame = tab.bounds;
tabRect.origin.y=[[UIScreen mainScreen] bounds].size.height+self.tabBarController.tabBar.frame.size.height;
} else {
view.frame = CGRectMake(tab.bounds.origin.x, tab.bounds.origin.y, tab.bounds.size.width, tab.bounds.size.height);
tabRect.origin.y=[[UIScreen mainScreen] bounds].size.height-self.tabBarController.tabBar.frame.size.height;
}
[UIView animateWithDuration:0.5f animations:^{
self.tabBarController.tabBar.frame=tabRect;
}completion:^(BOOL finished) {
}];
}
如果navigation bar的地方出现黑框 在viewdidload里写入如下方法
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) {
self.edgesForExtendedLayout = UIRectEdgeNone;
}