TableView点击的时候,让tabbar下移到消失,nav隐藏,停止滑动的时候tabbar和nav出现
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (_clickedCounter % 2 == 0){
[UIView animateWithDuration:1 animations:^{
self.tabBarController.tabBar.transform = CGAffineTransformMakeTranslation(0, 49);
[UIView animateWithDuration:5 animations:^{
self.navigationController.navigationBar.alpha = 0;
}];
}];
}else {
[UIView animateWithDuration:1 animations:^{
self.tabBarController.tabBar.transform = CGAffineTransformIdentity;
self.navigationController.navigationBar.alpha = 1;
}];
}
_clickedCounter++;
}
类似使用还有scrollView滑动页面的时候
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
[UIView animateWithDuration:1 animations:^{
self.tabBarController.tabBar.transform = CGAffineTransformMakeTranslation(0, 49);
[UIView animateWithDuration:5 animations:^{
self.navigationController.navigationBar.alpha = 0;
}];
}];
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
[UIView animateWithDuration:1 animations:^{
self.tabBarController.tabBar.transform = CGAffineTransformIdentity;
self.navigationController.navigationBar.alpha = 1;
}];
}
更为推荐的是以下方法,可以在有scrollview, 或tableview的地方使用
- (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(@"Show");
}];
}else if(translation.y<0){
[UIView animateWithDuration:0.3 animations:^{
[self setTabBarHidden:YES];
[self.navigationController setNavigationBarHidden:YES animated:YES];
NSLog(@"Hide");
}];
}
}
//隐藏显示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) {
}];
}
网友评论