在UITableViewCell内的UIImageView上调用一个方法

时间:2014-10-23 10:54:22

标签: ios uitableview mkmapview

我有一个自定义的UITableViewCell类,其中有一个UIImageView。仅当UITableViewCell的文本等于某个字符串(例如“Home”)时,才会显示此UIImageView。当调用方法mapView:regionWillChangeAnimated:时,我想在这个UIImageView上应用动画。

我的问题是,当mapView:regionWillChangeAnimated:被调用时,如何通过我的UITableView和自定义UITableViewCells,并在UIImageView设置为可见的单元格内的UIImageView上执行动画?

在使用UITableView委托方法之前,我已经能够在单元格上调用方法,但是我很难在这种情况下找到解决方案,因为UITableView没有被地图平移方法直接调用,它不是didSelectRowAtIndex路径问题?

谢谢。

2 个答案:

答案 0 :(得分:0)

如果您在地图委托方法中引用了表视图,则可以使用UITableView中的visibleCells方法获取所有可见单元格,并在需要时为它们应用动画。一般结构可能如下:

// Controller
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
  ...
  [self applyCellsAnimation];
}

- (void)applyCellsAnimation {
   for (CustomCell* cell in [self.tableView visibleCells]) {
      [cell performImageAnimationIfNeeded];
   }
}

// CustomCell
- (void)performImageAnimationIfNeeded {
   if (!self.myImageView.hidden) { 
      // perform animation
   }
}

答案 1 :(得分:0)

您可以使用表格视图中的所有可见行的数组     [myTableView visibleCells]

然后,您只需要通过每个单元格进行集成并为图像设置动画。 即。

for (MyCustomCell* cell  in [myTableView visibleCells])
{
 [cell animateImage];
}

然后animateImage的实现可以随心所欲 - 只需检查imageView.hidden属性,并在imageView可见时为其设置动画。