TableView/CollectionView 滑动顶部效果优化

默认弹簧效果

在使用 UITableView 或者 UICollectionView 时,如果开启弹框效果,下拉是整个内容就会偏移,松手就会自动弹回,最常用的就是我的界面。

如果scrolleView背景色和 cell/header 一样就不会产生什么突兀感,但是如果靠近顶部的视图是渐变/图片 或者和背景色差别较大,下拉就会产生突兀感。

如下图

那么怎解决了。

将 ScrollView 的偏移量传递到 Cell 中处理,进行子视图的偏移处理,造成视觉上的错觉。

注意: UITabelViewCell 或者 UICollectionViewCell 默认是开启裁剪的(clipsToBounds = true)

比如实现镂空滑动或者拉伸效果。

镂空滑动效果

效果如下图:

视图结构如下:

获取 ScrollView 的偏移量

通过代理方法 scrollViewDidScroll(_ scrollView: UIScrollView)可以轻松获取到偏移量。

 func scrollViewDidScroll(_ scrollView: UIScrollView) {let offsetY = scrollView.contentOffset.y// 下拉 y 小于 0if  offsetY < 0  { //let coll = scrollView as? UICollectionView,let index = IndexPath(item: 0, section: Section.baseInfo.rawValue)let cell = coll.cellForItem(at: index) as! MineInfoCollectionCellcell.updateOffset(offsetY) // 将偏移量传入目标 cell, 进行改变}}

为白色视图顶部和 Cell 顶部添加约束 containerTopCons ,并且将 Cell的裁剪取消

在 Cell 代码中进行偏移量赋值

class MineInfoCollectionCell: UICollectionViewCell {static var cellHeight: CGFloat = 300@IBOutlet weak var containerTopCons: NSLayoutConstraint!override func awakeFromNib() {super.awakeFromNib()containerHeigthCons.constant = MineInfoCollectionCell.cellHeight}func updateOffset(_ offset: CGFloat) {containerTopCons.constant = offset  // 更新偏移量}
}

将 scrollView 的偏移量转移到 Cell 内部,就可以实现镂空式的效果。

滑动拉伸效果

效果如下图:

同样的道理,只需要为蓝色视图再增加一个底部约束,就可以实现拉伸效果

TableView/CollectionView 滑动顶部效果优化相关推荐

  1. 微信小程序 顶部搜索框滑动伸缩效果的实现

    项目场景:微信小程序顶部搜索框随页面滑动伸缩效果 提示:实现搜索框跟随用户滑动页面,实现伸缩效果 微信小程序 顶部搜索框滑动伸缩动画的实现 实现效果: 滑动前 滑动后 实现原理 提示:主要用到了微信小 ...

  2. android tab 悬停效果代码,Android 仿腾讯应用宝 之 Toolbar +Scroolview +tab滑动悬停效果...

    Android 仿腾讯应用宝 之 Toolbar +Scroolview +tab滑动悬停效果 来源:互联网 作者:佚名 时间:2015-02-10 15:36 Android 仿腾讯应用宝 之 To ...

  3. flash特效原理:图片滑动放大效果(2)

    flash特效原理:图片滑动放大效果(1) http://blog.csdn.net/hero82748274/archive/2009/10/22/4715312.aspx 最近看了一些关于动态注册 ...

  4. php框架加滑动条,IOS_iOS实现双向滑动条效果,最近做项目,碰到一种双向滑 - phpStudy...

    iOS实现双向滑动条效果 最近做项目,碰到一种双向滑动条,自己实现了一下,随便写一下思路,方便以后开发,避免重复写代码,以后粘贴就行了.封装了一下,代码如下: #import typedef NSSt ...

  5. Android 资讯类App项目实战 第一章 滑动顶部导航栏

    前言: 正在做一个资讯类app,打算一边做一边整理,供自己学习与巩固.用到的知识复杂度不高,仅适于新手.经验不多,如果写出来的代码有不好的地方欢迎讨论. 该系列的其他文章 第二章 retrofit获取 ...

  6. 手机端图片滑动切换效果

    最近公司要求开发wap版本页面,碰到了个图片滑动切换效果,折腾了半天,自己封装了一个比较通用的小控件,在此分享一下. 大概功能:可以自定义是否自动切换,支持单手滑动图片进行切换,支持左右滑动切换.循环 ...

  7. Android仿今日头条图片滑动退出效果

    资源下载(2C币) 逛CSDN的时候,看到几篇写仿今日头条图片滑动退出效果的文章,闲着无聊便想着也给自己项目加上,实现的思路有很多种,本着就近原则选了一篇与自己思路相近的文章结合自己的实践总结一下. ...

  8. 学习GestureDetectorCompat,实现卡片左右滑动消失效果

    转载请标明出处: http://blog.csdn.net/iamzgx/article/details/53239874 本文出自:[iGoach的博客] 这几天,android studio2.2 ...

  9. flash特效原理 图片滑动放大效果 2

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! flas ...

最新文章

  1. c语言中不能表示的整型常量进制,C语言中整型常量的表示方法
  2. Android中使用ViewStub提高布局性能
  3. IIS6.0打开ASP文件,出现500错误或404错误解决方法
  4. 深度学习材料:从感知机到深度网络A Deep Learning Tutorial: From Perceptrons to Deep Networks
  5. linux gt txt内容为空,2gt;/dev/null和gt;/dev/null 2gt;amp;1和2gt;amp;1gt;/dev/null的区别...
  6. 雷锋网独家解读:阿里云原生应用的布局与策略
  7. 设计模式适配器模式_21世纪的设计模式:适配器模式
  8. kmp2-HDU1358 HUST1010 POJ2406 POJ2752
  9. ENSP配置 实例二 单臂路由配置
  10. pythonwhile爬虫教程_Python 爬虫从入门到进阶之路(十一)
  11. Jquery学习总结(5)——jQuery选择器
  12. mysql55条_mysql学习笔记一
  13. 程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!
  14. 倒车雷达c语言编程,基于单片机的倒车雷达设计
  15. 软件设计师-8.算法分析与设计
  16. 论文查重前应删掉哪些内容?
  17. 彩虹易支付全开源码全新完全开源无任何加密易支付程序
  18. 地图的文字注记的制作和优化
  19. 10款最佳项目管理工具推荐
  20. linux发行版本号列举,查看Linux发行版的名称及其版本号

热门文章

  1. Laravel项目上线部署
  2. ipa 打包遇到的坑
  3. Educational Codeforces Round 12 A. Buses Between Cities 水题
  4. Apache的Rewrite规则详细介绍
  5. Apache CXF实战之六 创建安全的Web Service
  6. Android平台调用WebService详解
  7. 内网安全新趋势之应对移动设备的威胁
  8. 只有与众不同才能生存
  9. THU – team project final review score
  10. 用animation的steps属性制作帧动画