UITableView去掉section的header的粘性

思路:若header的高度为25,在滑动的时候将scrollView的内容偏移量上衣25,其实他还是粘在上面只不过我们看不到他了。

///---用于判断往上滑还是往下滑

var deltaY:CGFloat = -111

func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {

deltaY = -111

}

//---------

override func scrollViewDidScroll(scrollView: UIScrollView) {

super.scrollViewDidScroll(scrollView)

if deltaY >= 0 {

if deltaY - scrollView.contentOffset.y > 0 {

let sectionHeaderHeight:CGFloat = 25;

if scrollView.contentOffset.y <= sectionHeaderHeight*2 && scrollView.contentOffset.y >= 0 {

scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);

}else{

scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);

}

}else{

let sectionHeaderHeight:CGFloat = 25;

if (scrollView.contentOffset.y <= sectionHeaderHeight && scrollView.contentOffset.y >= 0){

scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);

}else{

scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0)

}

}

}

else{

deltaY = scrollView.contentOffset.y

}

}

分析:

原理即在往上滑动的时候,将section header 的偏移量往上移动header的高度 ,往下滑动则不管

在scrollViewDidScroll代理方法中

deltaY记录可滑动开始是的偏移量

通过滑动的距离的正负判断上滑还是下滑,这个方法还能判断scrollView上滑下滑。。。。

然后下滑时才设置偏移量为25

scrollViewWillEndDragging方法中记录当滑动停止时是初始位置失效

        

时间: 2024-11-05 22:44:16

UITableView去掉section的header的粘性的相关文章

IOS UITableView Group&amp;Section

UItableView 根据数据结构不同 会有不同样式 关键在两个代理 tableviewdelegate&tabledatasourse 下面代码是我实施的Group 在模拟器中 ios6.1和ios7 并且滚动后相应的section会“置顶”,效果不错哦! 核心代码: #import <UIKit/UIKit.h> @interface AnnouncementViewController : UIViewController<UITableViewDataSource,UI

快速设置UITableView不同section对应于不同种类的cell

本文主要是为了写明如何在UITableView中,一个section对应于一种类型的cell,写起来不凌乱. 在不封装任何类的前提下提供如下源码: 请自行创建出3种类型的cell,创建好了就行,你需要创建出ModelOneCell,ModelTwoCell,ModelThreeCell,内容为空 // // RootViewController.m // Sections // // Copyright (c) 2014年 Y.X. All rights reserved. // #import

uitableview处理section的不悬浮,禁止section停留的方法

// //  ViewController.m //  qwerfresa // //  Created by  mac11 on 15-1-4. //  Copyright (c) 2015年 HYL. All rights reserved. // #import "ViewController.h" @interface ViewController ()<UITableViewDataSource,UITableViewDelegate>{ NSArray * ar

TableView Section Header 滑动粘性问题

在网上找到的方法 // 去掉UItableview headerview黏性(sticky) - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat sectionHeaderHeight = 40; if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) { scrollView.conten

UITableView去掉最后切割线的一种方法

UITableView以style:UITableViewStylePlain方式创建时.仅仅要有cell,就会有一条黑线 哪怕至于一个cell也会有,如图 在网上找了集中方法,都不好使,比方http://blog.csdn.net/l_ch_g/article/details/9290727,中的两种方法,都尝试不好使 第一种方法 1.加方法 -(void)setExtraCellLineHidden: (UITableView *)tableView{    UIView *view = [

UITableView设置Section间距

//section头部间距- (CGFloat)tableView:(UITableView )tableView heightForHeaderInSection:(NSInteger)section{ return 1;//section头部高度}//section头部视图- (UIView )tableView:(UITableView )tableView viewForHeaderInSection:(NSInteger)section{ UIView view=[[UIView al

iOS UITableView的Section Footer添加按钮

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 在处理UITableView表格时,我们希望在View底部添加按钮. 用户拖动UITableView时按钮能跟随移动. 如题,实现如下界面: - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)sec

iOS---》点击uitableview 的section展开或隐藏

#import <UIKit/UIKit.h> @interface TestCell : UITableViewCell @property (weak, nonatomic) IBOutlet UILabel *firstLabel; @property (weak, nonatomic) IBOutlet UILabel *endLabel; @property (weak, nonatomic) IBOutlet UIView *myView; @end #import "T

IOS中UITableview的两种Header view

UITableview中可以通过 1 UITableView *_tableView; 2 _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStyleGrouped]; 来生成一个表格,在style中有两个类型可以选择 1 typedef NS_ENUM(NSInteg