我已经考虑过如何让tabBar的隐藏动画更加优雅和流畅:
以下是我的实施方式:
所以我只是想改进动画,而tabBar突然,你知道,消失并隐藏。
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self.tabBarController.tabBar setHidden:YES];
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
[self.tabBarController.tabBar setHidden:NO];
}
有什么建议吗?
答案 0 :(得分:2)
尝试添加此方法:
- (void)setTabBarHidden:(BOOL)tabBarHidden animated:(BOOL)animated
{
if (tabBarHidden == _isTabBarHidden)
return;
CGFloat offset = tabBarHidden ? self.tabBarController.tabBar.frame.size.height : -self.tabBarController.tabBar.frame.size.height;
[UIView animateWithDuration:animated ? 0.6 : 0.0
delay:0
usingSpringWithDamping:0.7
initialSpringVelocity:0.5
options:UIViewAnimationOptionCurveEaseIn|UIViewAnimationOptionLayoutSubviews
animations:^{
self.tabBarController.tabBar.center = CGPointMake(self.tabBarController.tabBar.center.x,
self.tabBarController.tabBar.center.y + offset);
}
completion:nil];
_isTabBarHidden = tabBarHidden;
}
然后你可以像[self setTabBarHidden:YES animated:YES]
和[self setTabBarHidden:NO animated:YES]
一样调用它来隐藏和显示你的栏,这会将它移入和移出屏幕而不是让它立即消失。
不要忘记添加新的bool属性isTabBarHidden
,也可以使用动画的值。