Swift 自定义UITableViewCell以及Cell的底图跟着滑动也滑动。
来源:互联网 发布:网络正常微信发不出去 编辑:程序博客网 时间:2024/06/13 11:33
找工作依然不好找,还需努力才是
还是按着OC的惯性思维看过来
首先得有个tableview,然后就是实现其的代理方法语法都好说的,就看
这个里面就是咱们定义cell时所写的代码,里面也用到复用。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let initIdentifier = "Cell" //这行代码是复用,我也试着将这个cell强行:LinmoTableViewCell,可是就报错了,说是有了自定义的类型,就不让我为空了,但是默认就ok,难道我自定义里面得有默认初始的方法?这里很是疑惑,希望有知道的大神给我讲讲。 var cell = tableView.dequeueReusableCell(withIdentifier: initIdentifier) if (cell == nil){ //如果为空了,我们就得给它初始化,但这里初始化之后,由于cell的类型不清楚,所以无法应用我们自定义类里的方法。 cell = LinmoTableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: initIdentifier) } return cell!; }
就这样,为了用自定义cell里面的方法,我写在了display里面
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { //这里应该是tableview显示在屏幕上的cell会触发的事件,通过indexPath我们不难找到指定的cell,这里强行as! 然后就可以用咱们自定义里面的方法了,回调也可以了 let mycell = cell as! LinmoTableViewCell mycell.setData(dic: (dataArr?[indexPath.row])!) }
好,前面就是一般的创建cell的方法,下面这个就是别人写的炫酷的代码了 http://www.tuicool.com/articles/mmEjYj6
这段代码要写在,自定义cell中
- (CGFloat)cellOffset{ /* - (CGRect)convertRect:(CGRect)rect toView:(nullable UIView *)view; 将rect由rect所在视图转换到目标视图view中,返回在目标视图view中的rect 这里用来获取self在window上的位置 */ CGRect toWindow = [self convertRect:self.bounds toView:self.window]; //获取父视图的中心 CGPoint windowCenter = self.superview.center; //cell在y轴上的位移 CGRectGetMidY之前讲过,获取中心Y值 CGFloat cellOffsetY = CGRectGetMidY(toWindow) - windowCenter.y; //位移比例 CGFloat offsetDig = 2 * cellOffsetY / self.superview.frame.size.height ; //要补偿的位移 CGFloat offset = -offsetDig * cellHeight/2; //让pictureViewY轴方向位移offset CGAffineTransform transY = CGAffineTransformMakeTranslation(0,offset); self.pictureView.transform = transY; return offset;}
里面两点
1. 算出偏移量
2. 让图片去走偏移量(transform)
就酱。
还没完呢
这个方法在哪里触发呢?就是滑动时候触发
func scrollViewDidScroll(_ scrollView: UIScrollView) { let array:Array<LinmoTableViewCell> = tableview?.visibleCells as! Array<LinmoTableViewCell> for ( _, object ) in array.enumerated() { object.cellOffset() } }
0 0
- Swift 自定义UITableViewCell以及Cell的底图跟着滑动也滑动。
- 自定义滑动操作的 Table View Cell
- uitableviewcell的左右滑动手势
- 自定义Table View Cell左右滑动的使用
- xib 自定义UITableViewCell 位置滑动错乱解决
- UITableViewCell左滑动删除 和cell上按钮的点击事件
- iOS UITableViewCell重用以及自定义Cell
- 解决自定义可左右滑动cell时和tableview的滑动手势冲突问题
- 实现Cell的滑动删除
- 自定义tab,下边是viewpager。滑动viewpager,tab跟着动,点击tab,有动画效果并且viewpager也动。
- Swift学习之UITableView的实现以及滑动删除
- 移动端滑动弹出层页面到底部时,同级兄弟元素也跟着滑动。
- 自定义带有cell间距的UITableViewCell
- iOS UITableViewCell 表格式图滑动删除
- 自定义UIImageView的滑动
- UITableViewCell 滑动删除
- iOS - UITableViewCell滑动删除
- iOS UITableViewCell滑动删除
- 洛谷 P1433 吃奶酪 (dfs)
- intellj 在线生成工具2
- spring cloud eureka服务发现(高可用)
- Unity接入应用宝YSDK
- android5.1添加android长按power键重启功能
- Swift 自定义UITableViewCell以及Cell的底图跟着滑动也滑动。
- java:序列化&反序列化 自定义序列化的优点
- Linux上安装MongoDB
- ℃江让您从精通到入门:OnClick事件监听的几种方式
- ZOJ 3228 AC自动机 重叠和不重叠
- 手机端下拉加载页面
- linux 关机命令总结
- XX项目知识点汇总(1)
- Eclipse 报 "The builder launch configuration could not be found" ,Errors running builder "Integrated