在表格单元格中闪烁图像

时间:2013-02-07 14:07:30

标签: objective-c xcode uitableview

我希望在表格单元格中有一个闪烁的图像(两张图像之间的交换)。

对我来说最自然的是:

  • 设置NSTimer每隔0.5秒,调用-blink:
  • In -blink:我打开/关闭blinkStatus变量
  • In -cellForRowAtIndexPath:,我根据blinkStatus设置图像

现在,我还在-blink:方法中调用[myTableView reloadData],所以认为会更新。

这似乎有道理;单元格的状态实际上正在改变(图像正在改变),因此更新表格是有意义的。

这很有效。 然而,reloadData似乎会干扰用户交互:

在表编辑模式下,如果用户选择( - )删除,并且出现删除按钮,则在reloadData发生时它将消失。如果[myTableView.editing]为false,那么只执行reloadData很容易。 (在编辑模式下没有闪烁也不是一个大问题。)

然而,reloadData似乎仍然搞砸了(例如,清除单元格选择)。我也担心每隔0.5秒调用reloadData的效率。

是否有更顺畅的方式让图像闪烁?我正在考虑保存指向任何闪烁单元格的指针,并更新计时器中的.image属性。但这似乎是一个坏主意,因为单元格被重用于表的不同行(ouch),我怀疑只是更新.image属性会在没有reloadData的情况下更新表。

2 个答案:

答案 0 :(得分:2)

您只需在-blink方法中切换图像,只要您使用正确的界面(例如cell.imageView.image),图像就会自动更新,无需调用reloadData }

答案 1 :(得分:1)

您是否尝试使用[UIImageView animationImages]财产? 只需提供您的图像,设置所需的持续时间和animationRepeatCount并调用startAnimating

相关问题