iOS下用一行代码实现tableview(collectionview)的parallax效果
来源:互联网 发布:ie8 js serialize 编辑:程序博客网 时间:2024/06/08 04:54
效果和https://github.com/jberlana/JBParallaxCell一样。实现cell的滚动视差。
原理很简单,就是一个等比公式
cell的图片位置 / cell图片可以滑动的总长 = cell在table中的位置 / cell 可滑动总长
实现方法:
1》 在cell的UIImageView上添加父视图UIView,clipsToBounds设置为yes,用来剪切UIImageView,为其限定大小。
2》在vc的
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
中实时更新每个cell的图片位置。
代码如下
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ for(WELTableViewCell * cell in [self.tableView visibleCells]) { cell.image.frame = CGRectOffset(cell.image.frame, 0, ((cell.image.frame.size.height - cell.imageFrameView.frame.size.height) * ((cell.frame.origin.y + cell.imageFrameView.frame.size.height - self.tableView.contentOffset.y) / (self.tableView.frame.size.height + cell.imageFrameView.frame.size.height * 2)) + cell.imageFrameView.frame.size.height - cell.image.frame.size.height) - cell.image.frame.origin.y); }}
PS:确实是一行代码,哈哈。其实一行代码只是一个噱头,完全可以多写几行增加可读性。之所以写一行代码,是想表达这个效果其实蛮简单的。用算式算出偏移量,重设frame。
3》在tableView初次刷新完毕后,调用
[selfscrollViewDidScroll:nil];
例如
-(void)viewDidAppear:(BOOL)animated
{
[superviewDidAppear:YES];
[selfscrollViewDidScroll:nil];
}
最后,附上源代码demo(发帖不易,讨个积分,哈哈)
简单demo(附注释)
以上
0 0
- iOS下用一行代码实现tableview(collectionview)的parallax效果
- ios collectionview 的转场效果
- iOS之旅--用CollectionView实现轮播图效果+封装方法
- 用collectionView取代tableview更容易实现动画炫酷效果。
- iOS-一行代码让你的TableView动起来
- 一行代码让你的TableView动起来-iOS动画
- 一行代码让你的TableView动起来-iOS动画
- iOS 类似于礼物说分类栏TableView,CollectionView联动的实现
- 【代码笔记】iOS-collectionView实现照片删除
- iOS开发-给TableView或者CollectionView的cell添加简单动画,很方便,直接粘代码即可
- 实现tableView和collectionView的相互关联方法
- 视差滚动(Parallax Scrolling)效果的原理和实现
- 视差滚动(Parallax Scrolling)效果的原理和实现
- 视差滚动(Parallax Scrolling)效果的原理和实现
- 【iOS代码】Json数据展示为联系人效果的TableView
- ios用collectionView实现无限滚动的简单日历
- iOS -- 用collectionView实现图片的无限轮播
- IOS 直接选中tableView的最后一行
- java中final关键字的使用
- 烦死
- Json整理
- csdn开源夏令营中期总结
- Codeforces Round #259 (Div. 2)-B. Little Pony and Sort by Shift
- iOS下用一行代码实现tableview(collectionview)的parallax效果
- TP-LINK WR703N 刷OpenWrt并设置pppoe联网、安装LUCI、添加新用户、挂载USB设备、配置ftp服务、借由transmission实现脱机下载
- 菜鸟的安卓实习之路---采用preferenceFragment布局
- CSS编码规范(二)
- Charm Bracelet poj 3624 (01) 背包问题 c++
- 使用归档来创建对象的深复制
- socket套接字TCP API说明
- hibernate-Query.list()与Query.iterate()比较
- 模版解析