Swift 自定义UITableViewCell以及Cell的底图跟着滑动也滑动。

Swift 自定义UITableViewCell以及Cell的底图跟着滑动也滑动。,第1张

概述找工作依然不好找,还需努力才是 还是按着OC的惯性思维看过来 首先得有个tableview,然后就是实现其的代理方法语法都好说的,就看 这个里面就是咱们定义cell时所写的代码,里面也用到复用。 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

找工作依然不好找,还需努力才是
还是按着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()        }    }
总结

以上是内存溢出为你收集整理的Swift 自定义UITableViewCell以及Cell的底图跟着滑动也滑动。全部内容,希望文章能够帮你解决Swift 自定义UITableViewCell以及Cell的底图跟着滑动也滑动。所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1065948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存