I strongly recommend that you do not do animations for images in cellForRowAtIndexPath , because if you have more images, an unwanted effect will appear when you scroll quickly (cell images will switch due to the convenience of using cells).
What I did in one of my projects, I applied the method – scrollViewDidScroll: for UITableViewDelegate (which corresponds to UIScrollViewDelegate), and there I called a method that will animate images only on visible cells (tableView.visibleCells).
On the other hand, I do not understand why you use static BOOL second = NO; , you can just check if cell.imageView.image == is zero or not.
Also check the animation code, it is possible that something is not working there (remember that the cells are reused).
source share