当前位置:首页 > 开发 > 移动开发 > 正文

NsTimer 和 UITableViewCell 之间的控制

发表于: 2015-01-30   作者:dcj3sjt126com   来源:转载   浏览:
ios
摘要: 情况是这样的: 一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.   解决办法: 在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画   查找cell结束显示的代理

情况是这样的:

一个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];
}

 

NsTimer 和 UITableViewCell 之间的控制

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
看到这个标题,你可能会想NSTimer不就是计时器吗,谁不会用,不就是一个能够定时的完成任务的东西吗
看到这个标题,你可能会想NSTimer不就是计时器吗,谁不会用,不就是一个能够定时的完成任务的东西吗
转自一个特别牛的程序员的博客http://www.cnblogs.com/smileEvday/archive/2012/12/21/NSTimer.html
两个输入框,任一输入框的值改变时,另一个输入框变成只读。 一.watch实现 test.html <html ng-ap
如果我们想让某个方法重复的执行,可以用ios提供的定时器NSTimer来完成,其实使用起来非常简单,分
总结一下,我对NSTimer类的学习和理解。 不多说了,先上效果图 界面元素很简单,两个UIButton 开始
如果我们有多个敏捷团队在同一个代码库上工作时,如何将彼此之间代码互相冲突的风险最小化?如何确
没有严格的版本控制实践,任何团队所实施的敏捷都会处于风险之中;缺少了好的版本控制这个安全网,
如果我们有多个敏捷团队在同一个代码库上工作时,如何将彼此之间代码互相冲突的风险最小化?如何确
http://haoxiang.org/2010/12/uitableviewcell-background/ UITableViewCell是一个很常用的View,通
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号