博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS UITableView上下滑动控制底部按钮出现
阅读量:6721 次
发布时间:2019-06-25

本文共 1959 字,大约阅读时间需要 6 分钟。

欢迎大家关注我的公众号,我会定期分享一些我在项目中遇到问题的解决办法和一些iOS实用的技巧,现阶段主要是整理出一些基础的知识记录下来

文章也会同步更新到我的博客:

一个简单的小功能,忘记在哪个APP上看到过,就做来玩一玩 实现起来还是很简单的

先看一下效果

1

分析一下我们需要实现的:

  • UITableView 向上滑动时隐藏底部的按钮
  • UITableView 向下滑动时,底部按钮出现
  • UITableView 到达底部时,底部按钮也出现

创建工程啥的我都不讲了吧

在viewDidload中加上view

//加上这句  UIScrollView的Content就不会自动偏移64(导航栏和状态栏的高度)    self.automaticallyAdjustsScrollViewInsets = NO;    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 64, SCREEN.width, SCREEN.height-64) style:UITableViewStylePlain];    tableView.delegate = self;    tableView.dataSource = self;    [self.view addSubview:tableView];    self.tableView = tableView;    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];    btn.frame = CGRectMake(self.view.frame.size.width / 2 - 25, self.view.frame.size.height - 50, 50, 50);    [btn setBackgroundImage:[UIImage imageNamed:@"comments"] forState:UIControlStateNormal];    self.btn = btn;    [self.view addSubview:self.btn];复制代码

处理UIScrollView的滑动,一般都是在scrollViewDidScroll:方法中,这次也不例外

我们在这里监听当前scrollview的滑动距离 滑动方向等

#pragma mark - UITableView delegate-(void)scrollViewDidScroll:(UIScrollView *)scrollView{    if (scrollView.contentOffset.y > self.offsetY && scrollView.contentOffset.y > 0) {
//向上滑动 //按钮消失 [UIView transitionWithView:self.btn duration:0.1 options:UIViewAnimationOptionTransitionNone animations:^{ self.btn.frame = CGRectMake(SCREEN.width / 2 - 25, SCREEN.height, 50, 50); } completion:NULL]; }else if (scrollView.contentOffset.y < self.offsetY ){
//向下滑动 //按钮出现 [UIView transitionWithView:self.btn duration:0.1 options:UIViewAnimationOptionTransitionNone animations:^{ self.btn.frame = CGRectMake(SCREEN.width / 2 - 25, SCREEN.height - 50, 50, 50); } completion:NULL]; } self.offsetY = scrollView.contentOffset.y;//将当前位移变成缓存位移}复制代码

这样一个 特别简单的小功能 就实现了

源码放在了:

转载地址:http://cyjmo.baihongyu.com/

你可能感兴趣的文章
Docker入门系列之一:在一个Docker容器里运行指定的web应用
查看>>
健康链(HDC):基础公链为经,医疗引擎为纬
查看>>
中国《南方画刊》第2期
查看>>
以太坊智能合约示例
查看>>
区块链是什么?彻底理解只要150行java代码!
查看>>
使用MaxCompute Java SDK 执行任务卡住了,怎么办?
查看>>
《鹿鼎记》的第一遍读后感作文3600字
查看>>
66.添加自定义监控项目 配置邮件告警与测试及处理问题
查看>>
阿里云应用高可用服务公测发布
查看>>
芯片、半导体和集成电路之间的区别是什么?
查看>>
圣诞要礼物手势大全,礼物在哪里?
查看>>
OSChina 周日乱弹 ——我自己能发呆到世界毁灭
查看>>
OSChina 周二乱弹 —— 好好告别啊!不要舌吻!
查看>>
使用Cygwin和 mingw 安装 python paramiko模块
查看>>
前端那些事之hack篇
查看>>
结合COMSOL,浅谈多场耦合
查看>>
开发人员学Linux(2):VirtualBox中安装CentOS7系统设置
查看>>
HttpURLConnection原生JAVA http請求
查看>>
CentOS/Linux 开放80、8080端口或者开放某个端口
查看>>
Storm配置属性和操作命令
查看>>