NsTimer 和 UITableViewCell 之间的控制

网友投稿 227 2022-09-06

NsTimer 和 UITableViewCell 之间的控制

情况是这样的:

一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.

解决办法:

在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画

查找cell结束显示的代理方法, 打开dash 在ios分类中搜索 uitableviewdelegate, 找找所有的代理方法, 发现在Tracking the Removal of Views这个类别中有一个代理方法叫: - tableview:didEndDisplayingCell:forRowAtIndexPath: 这个方法就是我们所需要的, 在个方法里面调用停止动画的方法即可

关键代码如下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { RecentlyCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; Feed * feed = (Feed *)self.data[indexPath.row]; cellviewA.feed = feed; [cell.stageView performSelector:@selector(startAnimation) withObject:nil afterDelay:1]; return cell;}- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { RecentlyCell * recentlyCell = (RecentlyCell *)cell; [recentlyCell.viewA stopAnimation];}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:自己实践了github的webhooks, linux上面的权限需要注意
下一篇:那你为什么小时候不好好读书?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~