紧张工作的同时偷个懒, 写一下监听UIScrollView上下滑动和停止.
- 话不多说 上代码
@interface YCXTestViewController () <UITableViewDelegate, UITableViewDataSource>
@property (nonatomic,strong) UITableView *tableView;
@property (nonatomic,assign) CGFloat lastContentOffset; // 记录最后偏移量
@property (nonatomic,assign) CGFloat isUpScrolling; // 防止多次调用
@end
@implementation YCXTestViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:self.tableView];
}
// ---scrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y < self.lastContentOffset ){
//向下
if (self.isUpScrolling) {
NSLog(@"---下滑---");
self.isUpScrolling = NO;
}
} else if (scrollView.contentOffset.y > self.lastContentOffset ){
//向上
if (!self.isUpScrolling) {
NSLog(@"---上滑---");
self.isUpScrolling = YES;
}
}
self.lastContentOffset = scrollView.contentOffset.y;
}
- (void)scrollViewDidEndScroll {
self.isUpScrolling = NO; // 恢复初始值
NSLog(@"---停止---");
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (!decelerate) {
if (!scrollView.dragging && !scrollView.decelerating) {
[self scrollViewDidEndScroll];
}
}
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
if (!scrollView.dragging && !scrollView.decelerating) {
[self scrollViewDidEndScroll];
}
}
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
_tableView.delegate = self;
_tableView.dataSource = self;
[_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:NSStringFromClass([UITableViewCell class])];
}
return _tableView;
}
// ---tableDelegate
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 100;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([UITableViewCell class]) forIndexPath:indexPath];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.textLabel.text = [NSString stringWithFormat:@"--%ld",indexPath.row];
return cell;
}
@end
网友评论