您的位置:首页 > 移动开发 > IOS开发

iOS tableView滑动隐藏/显示tabbar

2015-10-23 15:30 495 查看
在需要滑动隐藏/显示的页面中:

@property(nonatomic,assign)CGFloat historyY;

#pragma mark Delegate

//设置滑动的判定范围

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout
CGPoint *)targetContentOffset

{

if (historyY+20<targetContentOffset->y)

{

[self
setTabBarHidden:YES];

}

else if(historyY-20>targetContentOffset->y)

{

[self
setTabBarHidden:NO];

}

historyY=targetContentOffset->y;

}

//隐藏显示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) {

}];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: