iOS TabeView 头视图和尾视图不滑动的实现
因项目有需求不能让section中的头尾视图滑动,顾根据网上的一些资料和自己整理的思路,已实现了不滑动效果,上代码,啥都说了,搞了2个小时都是泪。。。。
1.创建一个tableview
_mainTableView = [[UITableView alloc]initWithFrame:CGRectMake(, , kScreenWidth, kScreenHeight - ) style:UITableViewStylePlain];//带导航栏-64
_mainTableView.backgroundColor = [UIColor clearColor];
_mainTableView.dataSource = self;
_mainTableView.delegate = self;
_mainTableView.sectionHeaderHeight = ;//headView高
_mainTableView.sectionFooterHeight = ;//footerView高
_mainTableView.contentInset = UIEdgeInsetsMake(, , -, );//加载的时候需要底部视图
2. 实现scrollView代理协议
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
static CGFloat offsetCount = ;
CGFloat sectionHeaderHeight = ;//设置headView和footerView的最大值
CGFloat sectionFooterHeight = ;//设置headView和footerView的最大值
NSLog(@"%f",scrollView.contentOffset.y); if (scrollView.contentOffset.y<sectionHeaderHeight&&scrollView.contentOffset.y>=) {//headerView刚开始的滑动
if (offsetCount >= scrollView.contentOffset.y) {
[scrollView setContentOffset:CGPointMake(, ) animated:YES];
//scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, -sectionFooterHeight, 0);
}else{ scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, , -sectionFooterHeight, );
}
}
else if (scrollView.contentOffset.y>=sectionHeaderHeight && scrollView.contentOffset.y + sectionFooterHeight < scrollView.contentSize.height - scrollView.frame.size.height&&scrollView.contentOffset.y>=) {//中间的滑动
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, , -sectionFooterHeight, ); }else if(scrollView.contentOffset.y + sectionFooterHeight >= scrollView.contentSize.height - scrollView.frame.size.height && scrollView.contentOffset.y < scrollView.contentSize.height - scrollView.frame.size.height&&scrollView.contentOffset.y>=){//footerView结束的时候的滑动
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, ,-(scrollView.contentSize.height - scrollView.frame.size.height - scrollView.contentOffset.y) , );
}
offsetCount = scrollView.contentOffset.y;
}
iOS TabeView 头视图和尾视图不滑动的实现的更多相关文章
- UICollectionview的头视图和尾视图
UITableView有头视图和尾视图,那么UICollectionView有没有头视图和尾视图呢? 答案是有的. 1.新建一个类,必须继承自 UICollectionReusableView. 2. ...
- Swift自定义头视图和尾视图
var data: [[String]]! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup a ...
- iOS之UITableView组头组尾视图/标题悬停
最近笔者在公司的iOS开发中,有一个iOS开发同事跑来问了两个问题:1.给UITableView设置了组头和组尾视图,但是一直显示不出来?2.UITableView的section的header和fo ...
- IOS开发中UITableView(表视图)的滚动优化及自定义Cell
IOS开发中UITableView(表视图)的滚动优化及自定义Cell IOS 开发中UITableView是非常常用的一个控件,我们平时在手机上看到的联系人列表,微信好友列表等都是通过UITable ...
- iOS系列 基础篇 04 探究视图生命周期
iOS系列 基础篇 04 探究视图生命周期 视图是应用的一个重要的组成部份,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 以视图的四种状态为基础,我们来系统了解一下视 ...
- iOS企业级开发初级课程-表视图(13集)
首先了解了表视图的组成.表视图类的构成.表视图的分类以及表视图的两个重要协议(委托协议和数据源协议),对表视图有了一个整体上的认识.接下来我们掌握了如何实现简单表视图和分节表视图,以及表视图中索引.搜 ...
- 学习方法和阶段介绍 、 iOS界面开发引入 、 构造第一个App 、 视图控制器和视图 、 控件与事件 、 InterfaceBuilder
1 创建并运行第一个App 1.1 问题 使用Xcode创建一个App项目,该应用实现功能在界面上显示Hello World标签,在模拟器中的运行结果如图-1所示: 图-1 1.2 方案 分析图-1, ...
- Xamarin iOS教程之添加和定制视图
Xamarin iOS教程之添加和定制视图 Xamarin iOS用户界面——视图 在iPhone或者iPad中,用户看到的摸到的都是视图.视图是用户界面的重要组成元素.例如,想要让用户实现文本输入时 ...
- iOS - UICollectionView 瀑布流 添加表头视图的坑
UICollectionView 瀑布流 添加表头视图的坑 首先是,需求加了个头视图在顶部,在collectionView中的头视图跟TableView的不一样,TableView的表头只要设置tab ...
随机推荐
- [转]MIDI常识20条
原文链接:http://www.midifan.com/modulearticle-detailview-488.htm Keyboard杂志老资格编辑Jim Aikin在纪念MIDI诞生20的时候发 ...
- Asp.Net Core 项目搭建 基础配置 和MySql 的使用
一.开发环境准备 1.安装Visual Studio 2015,我这里安装的是专业版. 2.安装.NET Core SDK相关 需要安装 Visual Studio 2015 update3和NET ...
- idea 静态资源不能即时更新
- pptpd
18. pptp Server Administration This section covers a few tricks on pptp server management. It is far ...
- awk中的system和getline的用法
system只能对命令的输出结果输出到终端. getline在awk中可以使命令的输出结果传到一个变量中保存. # awk 'BEGIN{system("date")|getlin ...
- SVN随记
SVN中提交代码时报如下错误 commit -m "sync" E:/resource/rad_workspace/IMSCrawl/src/configuration.prope ...
- 【UOJ#67】新年的毒瘤 Tarjan 割点
#67. 新年的毒瘤 UOJ直接黏贴会炸... 还是戳这里吧: http://uoj.ac/problem/67#tab-statement Solution 看到这题的标签就进来看了一眼. 想 ...
- Hadoop中pid文件存储
我的hadoop集群部署在自己电脑虚拟机上,有时候我是挂起虚拟机,第二天再打开发现有些线程就挂了,比如namenode,好奇怪,当时看了一些帖子说是和pid存储有关,找到log看到找不到pid.因为基 ...
- php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)
虽然通过nginx accesslog可以记录用户访问某个接口或者网页所消耗的时间,但是不能清晰地追踪到具体哪个位置或者说函数慢,所以通过php-fpm慢日志,slowlog设置可以让我们很好的看见哪 ...
- 【Beta】第四次任务发布
PM 日常管理&dev版宣传(周日开始). 后端 #99 服务发布 验收条件:使dev版能在www.buaaphylab.com下运行. 前端 #87 登录后能够查看与下载用户收藏的报告.生成 ...