navigationBar 滑动 隐藏与显示 功能
来源:互联网 发布:蜂窝移动网络数据漫游 编辑:程序博客网 时间:2024/05/18 11:14
#import"ViewController.h"
#define Screen_W [[UIScreen mainScreen] bounds].size.width
#define Screen_H [[UIScreen mainScreen] bounds].size.height
#define kOriginalImageHeight 200
@interfaceViewController ()
@property (nonatomic,strong)UIImageView *imageView;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
self.view.backgroundColor = [UIColorwhiteColor];
self.title =@"我的";
//添加表头视图
[selfaddTableHeadView];
//设置导航条透明化
[selfsetNavigationBarClear];
//设置为YES
self.automaticallyAdjustsScrollViewInsets =NO;
}
//设置导航条为透明色
-(void)setNavigationBarClear{
//给导航条设置一个空的背景图使其透明化
[self.navigationController .navigationBarsetBackgroundImage:[UIImagenew]forBarMetrics:UIBarMetricsDefault];
//去除导航条透明后导航条下的黑线
[self.navigationController.navigationBarsetShadowImage:[UIImagenew]];
}
-(void)addTableHeadView{
//初始化表头视图
self.imageView = [[UIImageViewalloc]initWithFrame:CGRectMake(0,-kOriginalImageHeight,Screen_W,kOriginalImageHeight)];
self.imageView.image = [UIImageimageNamed:@"b"];
//将表头视图添加到tablView
[self.tableViewaddSubview:self.imageView ];
//设置imageView的内容填充模式为ScaleAspectFill
self.imageView.contentMode =UIViewContentModeScaleAspectFill;
self.imageView.clipsToBounds =YES;
//设置tableView的初始位置距离顶部200即image的原始高度kOriginalImageHeight
self.tableView.contentInset =UIEdgeInsetsMake(kOriginalImageHeight,0,0,0);
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"%f",self.tableView.contentOffset.y);
//获取tableView的Y方向偏移量
CGFloat offSet_Y =self.tableView.contentOffset.y;
//向下拖动图片时
if (offSet_Y < -kOriginalImageHeight) {
//获取imageView的原始frame
CGRect frame =self.imageView.frame;
//修改imageView的Y值等于offSet_Y
frame.origin.y = offSet_Y;
//修改imageView的height 等于offSet_Y的绝对值此时偏移量为负数
frame.size.height = - offSet_Y;
//重新赋值
self.imageView.frame = frame;
}
//tableView相对于图片的偏移量
CGFloat reOffset = offSet_Y +kOriginalImageHeight ;
// (kOriginalImageHeight - 64)这个数值决定了导航条在图片上滑时开始出现 alpha从 0 ~ 0.99 变化
// 当图片底部到达导航条底部时导航条 aphla变为1导航条完全出现
CGFloat alpha = reOffset/(kOriginalImageHeight -64);
if (alpha>=1) alpha =0.99;
//设置导航条的背景图片其透明度随 alpha值 而改变
UIImage *image = [selfimageWithColor:[UIColorcolorWithRed:0.227green:0.753blue:0.757alpha:alpha]];
[self.navigationController.navigationBarsetBackgroundImage:imageforBarMetrics:UIBarMetricsDefault];
}
//使用颜色填充图片
- (UIImage *)imageWithColor:(UIColor *)color
{
//描述矩形
CGRect rect=CGRectMake(0.0f,0.0f,1.0f,1.0f);
//开启位图上下文
UIGraphicsBeginImageContext(rect.size);
//获取位图上下文
CGContextRef context =UIGraphicsGetCurrentContext();
//使用color演示填充上下文
CGContextSetFillColorWithColor(context, [colorCGColor]);
//渲染上下文
CGContextFillRect(context, rect);
//从上下文中获取图片
UIImage *theImage =UIGraphicsGetImageFromCurrentImageContext();
//结束上下文
UIGraphicsEndImageContext();
return theImage;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return50;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:@"cell"];
if (cell ==nil) {
cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"cell"];
}
cell.textLabel.text = [NSStringstringWithFormat:@"%d",indexPath.row];
return cell;
}
- navigationBar 滑动 隐藏与显示 功能
- 滑动隐藏和显示tabBar和NavigationBar
- NavigationBar的隐藏与显示
- iOS开发 之 navigationbar 与 tabbar 的显示与隐藏
- 如何控制android系统中NavigationBar 的显示与隐藏
- [Android][SystemUI]navigationbar 3个虚拟键隐藏与显示
- 隐藏navigationBar之后滑动返回的问题
- 滑动底部工具条显示与隐藏
- 菜单UI点击隐藏与显示(滑动)
- juqery 以滑动显示与隐藏
- NavigationBar 隐藏,显示控制(完美解决)
- 显示、隐藏NavigationBar(虚拟按键)
- 关于华为手机自定义view中NavigationBar显示与隐藏造成高度问题的解决办法
- jquery实现文本显示与隐藏功能
- 怎么像safari一样滑动的时候隐藏navigationbar?
- 怎么像safari一样滑动的时候隐藏navigationbar?
- 隐藏NavigationBar
- NavigationBar隐藏
- CTEX初学一
- Android入门笔记之安卓布局常用属性
- 斗地主游戏制作流程(1)
- Oracle -- Set NS_NCHAR_CHARACTEREST
- Poj 3069 Saruman's Army【贪心】
- navigationBar 滑动 隐藏与显示 功能
- BZOJ3440 传球游戏
- Spring中applicationContext.xml位置问题
- 给定一个字符串,求出最长的连续配对括号子串的长度
- java wait和notify 简单理解
- [Leetcode] Lowest Common Ancestor of a Binary Tree
- Jenkins 常用配置设定 -- MacOS
- 康托展开的相关研究
- Python与数据库(2)Oracle