本人刚刚模仿qq好友动态的LTNavigationBar效果写了一个Demo,大致的效果就是,向上滑动的时候,navigation的颜色逐渐出现,向下滑动navigation的颜色逐渐消失;还有一个功能是点击navigation右边的按钮会旋转且出现另一个navigation(Android效果)。demo基本实现了这两个功能,具体代码还可以优化。提供本人思路供大家学习,欢迎留言交流
/* LTNavigationBarDemo
1. 自定义navigation(也可以不自定义)放上3个button
2 创建tableView 实现协议方法
3 通过tableView父类方法实现navigation透明度的改变
4 在navigation右边button的点击事件改变button的角度,出现另一个navigation(上面同样有个button)点击button该navigation隐藏,且旋转button角度 */
看一下效果
关键部分代码:
#define MY_NAVIGATIONBAR_ALPHA_CHANGE_ALPHA_BEGINCHANGE (scrollView.contentOffset.y-40)/255.
#define MY_NAVIGATIONBAR_ALPHA_CHANGE_ALPHA_ENDCHANGE 0
#pragma mark - scrollView
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (40 <= scrollView.contentOffset.y) {
myNavigationBar.backgroundColor = [UIColor colorWithRed:0 green:0 blue:1 alpha:MY_NAVIGATIONBAR_ALPHA_CHANGE_ALPHA_BEGINCHANGE];
}
if (0 == scrollView.contentOffset.y) {
myNavigationBar.backgroundColor = [UIColor colorWithRed:0 green:0 blue:1 alpha:MY_NAVIGATIONBAR_ALPHA_CHANGE_ALPHA_ENDCHANGE];
}
}
// androidStyle
-(void)rightClick:(UIButton*)btn
{
btn.transform = CGAffineTransformRotate(btn.transform, -M_PI_2);
isClick = YES;
UIView *myRightNavigationBar = ( UIView *)[self.view viewWithTag:MY_RIGHTNAVIGATIONBAR_TAG];
myRightNavigationBar.hidden = NO;
NSLog(@"rightClick");
}
-(void)myRightNavButtonClick:(UIButton*)btn
{
NSLog(@"myRightNavButtonClick");
btn.transform = CGAffineTransformRotate(btn.transform, -M_PI_2);
UIView *myRightNavigationBar = ( UIView *)[self.view viewWithTag:MY_RIGHTNAVIGATIONBAR_TAG];
myRightNavigationBar.hidden = YES;
}
附上完整demo代码:http://download.youkuaiyun.com/detail/csdn_hhg/9197821