tableView下拉距离限制

项目中使用了tableView的下拉加载历史记录功能。其中一个逻辑是这样的:手撒开后,tableView会反弹回顶部,为了让cell复用没问题,设置延迟更新数据源。因为如果在手撒开tableView未反弹时就更新数据源,那么界面最下方的cell数据会根据新数据源来设置,导致错误。这个“延迟”的时间必须保证tableView能及时的反弹回顶部。后来发现设置这个时间并不是多么保险,因为我们无法保证用户下拉tableView的距离有多远,这决定了tableView反弹回顶部用的时间。所以干脆对tableView下拉的距离进行限制。主要的原理是在用户下拉过程中不断判断contentOffset,如果小于某个临界值就用setContentOffset设置contentOffset,从而让用户无法继续下拉,达到限制下拉距离的目的。代码如下:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

//限制下拉的距离为70

if(scrollView.contentOffset.y<-70 && scrollView.isDragging){

[scrollView setContentOffset:CGPointMake(0, -70)];

}

[super scrollViewDidScroll:scrollView];

}

时间: 2024-10-16 19:59:53

tableView下拉距离限制的相关文章

TableView下拉表头放大 导航栏颜色透明度随着TableView偏移量渐变

TableView 下拉表头放大 导航栏颜色透明度随着TableView偏移量渐变 用storeboard 布局,之前尝试在storeboard中设置tableview的表头,但是那样弄出来的效果 表头不贴着上面,后来改成storeboard和代码 结合,最后实现的这个效果 下载链接: https://github.com/ShaoWenLe/TableViewThe-drop-down-amplification.git import UIKit let KScreen_Width = UIS

iOS tableView下拉图片放大

事实上这个效果,本质上就是在你tableView下拉 造成offset时候. 保持你顶部图片的y坐标点还停留在下拉时屏幕的顶点(offset), 而图片的长度变为原始的height长度-(offset ) 就达到了下拉放大的效果. 直接上代码了: 1. 首先创建一个UIView作为headerView _topView = [[UIViewalloc]initWithFrame:CGRectMake(0,0,MCAPPWidth,80)]; _tableView.tableHeaderView

iOS实现tableView下拉搜索功能

iOS实现tableView下拉搜索功能 地址:github地址 效果展示 JRSearchBar /// 搜索 -> array - (NSMutableArray *)searchTest:(NSString *)searchText InArray:(NSArray *)array;

tableView下拉图片放大

其实这个效果,本质上就是在你tableView下拉 造成offset时候, 保持你顶部图片的y坐标点还停留在下拉时屏幕的顶点(offset), 而图片的长度变为原始的height长度-(offset ) 就达到了下拉放大的效果. 直接上代码了: 1. 首先创建一个UIView作为headerView _topView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, MCAPPWidth, 80)]; _tableView.tableHeaderVi

利用UIRefreshControl实现tableView下拉刷新

- (void)viewDidLoad { [super viewDidLoad]; // 此处的self->ViewController继承于UITableViewController UIRefreshControl *refresh = [[UIRefreshControl alloc] initWithFrame:CGRectZero]; refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"下

TableView下拉cell

效果如下: 源码如下: 1 // 2 // MainViewController.m 3 // NodeTableView 4 // 5 // Created by ChenJungang on 14/11/10. 6 // Copyright (c) 2014年 ChenJungang. All rights reserved. 7 // 8 9 #import "MainViewController.h" 10 #import "MainCell.h" 11 1

IOS控件 Tableview 下拉刷新,加载数据

一. 点击此连链接下载资源文件,将EGORefreshTableHeaderView.h.EGORefreshTableHeaderView.m两个文件,以及Enormego提供的那一套图片包拖进你的工程里. 二.找到你的  UITableViewController 的 .h 文件,添加相应的代码: #import "EGORefreshTableHeaderView.h" @interface RootViewController : UITableViewController {

iOS 使用TableView实现下拉放大

第一步: 布置需要放大的TopView: 1. 创建TopView UIImageView *topView = [[UIImageView alloc] init]; 2. 设置图片 UIImage *image = [UIImage imageNamed:@"Big.jpg"]; topView.image = image; 3. 设置TopView的初始位置及内容模式 // 初始位置 topView.frame = CGRectMake(0, -TopViewH, ScreenW

猫猫学iOS之tableView的下拉放大图片的方法

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 tableview下拉的时候上部分图片放大会 二:代码 直接上代码,自己研究吧 #import "NYViewController.h" //图片的高度 const CGFloat NYTopViewH = 350; @interface NYViewController () @property (nonatomic, weak) UIIm