`
dcj3sjt126com
  • 浏览: 1878674 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

NsTimer 和 UITableViewCell 之间的控制

    博客分类:
  • IOS
ios 
阅读更多

情况是这样的:

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

 

分享到:
评论

相关推荐

    ios-tableview cell 倒计时.zip

    - 使用`DateComponents`类可以方便地获取两个日期之间的差距,包括天数、小时数、分钟数和秒数。 - 如果需要精确到毫秒,可以使用`Calendar`的`dateComponents(_:from:to:)`方法。 2. **更新cell的显示**: - 在...

    iOS之UITableView计时器的实现方式总结(NSTimer、DispatchSource、CADisplayLink)

    DispatchSource提供了更灵活的控制,但使用起来相对复杂;CADisplayLink适合需要与屏幕刷新同步的情况。开发者应根据实际需求选择合适的计时器实现方式。在UITableView中使用定时器时,尤其要注意避免Cell重用和...

    iOS中cell上定时器的使用

    在`UITableViewCell`的`awakeFromNib`或`prepareForReuse`方法中,我们可以创建一个`NSTimer`实例。通常使用`NSTimer.scheduledTimer(withTimeInterval:target:selector:repeats:)`方法来创建一个定时器,参数含义...

    ios-文字轮播.zip

    通过自定义UITableViewCell、设置数据源、监听滚动事件和调整滚动速度,我们可以实现一个灵活且实用的功能,适用于各种需要动态更新信息的场景。在实际开发中,可以根据需求进一步扩展和优化,例如增加图片支持、...

    ios-tableView定义倒计时显示.zip

    1. **UITableView与UITableViewCell**: UITableView是iOS应用中展示数据的标准组件,它由行(cells)和分区(sections)组成。UITableViewCell则是表格中的基本单元,通常包含一个或多个视图来展示数据。 2. **...

    ios-改变cell透明度的cell视觉差.zip

    4. **自定义UITableViewCell**:为了更好地控制cell的行为,开发者可能创建了一个自定义的`UITableViewCell`子类,并在其中添加了透明度变化的逻辑。这可能包括在初始化方法中设置初始透明度,以及在布局子视图时...

    IOS应用源码——超炫的table view效果:上下滑动展示出页面.zip

    例如,`numberOfSectionsInTableView:`和`tableView:numberOfRowsInSection:`方法定义了section和row的数量,而`tableView:cellForRowAtIndexPath:`方法则负责为每个单元格创建和配置自定义的UITableViewCell。...

    ios-轮播图封装和工厂模式.zip

    3. 轮播图视图控制器(CarouselViewController):负责管理轮播图的显示和交互,包括初始化数据、设置ScrollView属性、添加定时器等。 4. 工厂类(CellFactory):根据输入条件(可能是模型类型或者特定标识)生成...

    iphone tableview显示时钟的例子

    为了使时钟实时更新,我们可以利用`NSTimer`定时更新Label的文本,展示当前时间。同时,为了让动画更炫酷,我们可以结合Core Animation来改变Label的文字颜色、大小或者位置,使时间的更新伴随着平滑的动画。 在`...

    iOS歌词同步与解析

    4. **自定义`UITableViewCell`**:为显示歌词,我们需要自定义`UITableViewCell`,在其中添加一个具有适当字体和颜色的`UILabel`,用于显示歌词文本。 5. **歌词同步**:监听音乐播放器的`AVPlayer`或`...

    IOS开发中的各种Category

    NSTimer NSURL UIKit UIBezierPath UIButton UIColor UIDevice UIImage UIImageView UILable UINavigationController UIResponder UIScrollView UISearchBar UITableViewCell UITextField UITextView UIView ...

    ios-视图动画.zip

    为了实现聊天界面,开发者可能设计了自定义的UITableViewCell,包含了输入框、发送按钮以及消息气泡视图。聊天消息的显示效果,如出入动效、气泡形状和方向,都可以通过自定义cell的布局和动画来实现。 课程表的...

    iOS实现带动画的环形进度条

    3. 使用`NSTimer`控制动画,更新进度和数字显示。 4. 考虑性能和界面更新的问题,可能需要在子线程中处理定时器。 5. 调整布局和字体,以适应不同的屏幕尺寸。 通过以上步骤,你可以创建一个美观且实用的环形进度条...

    3d页面切换

    这种技术主要应用于tablview或者collectionview等视图组件,通过自定义动画实现3D翻转效果,使页面之间的过渡更加流畅自然。下面我们将深入探讨3D页面切换的实现原理、关键技术和优化策略。 首先,3D页面切换的核心...

    ios-轮播+tableview.zip

    - 自动轮播通过设置定时器(NSTimer)实现,每隔一段时间切换到下一张图片。 - 点击暂停功能可以通过手势识别器(UIPanGestureRecognizer)检测用户交互,并根据需要暂停定时器。 2. **UITableView**: - `...

    iOS中让多个cell上都出现倒计时的分析与实现

    iOS中让多个cell上都出现倒计时的分析与实现 iOS开发中,实现每个...通过使用NSTimer和cell内部加一个定时器,可以实现每个cell上显示倒计时功能。但是,我们需要注意cell重用问题,并采取相应的解决方法。

    ios-Swift广告弹窗.zip

    在iOS中,这可以通过设置`UIScrollView`的contentSize和`CADisplayLink`或`NSTimer`来实现。当用户滑动到最后一张广告时,视图会自动跳转回第一张,形成无限循环的效果。 5. **ADAlert_Demo**: 这个文件名很可能...

    ios-WLScrollView.zip

    开发者可以根据需求自定义Cell的布局和样式,这通常通过继承UICollectionViewCell或者UITableViewCell来实现。自定义Cell可以让每个项目拥有独特的视觉效果,提高用户体验。 3. **复用机制(Cell Reuse)**: 为了...

    JXCategoryKit:系统基础类扩展

    JXCategoryKit系统基础类扩展包含Foundation.framework内部的NSDate,NSTimer,NSObject,NSNull,NSFileManager,NSString,NSDictionary,NSError,NSBundle,NSArray类扩展包含UIKit.framework内部的UIWindow,...

Global site tag (gtag.js) - Google Analytics