I want to hide a view from my visible collection view cell when user finish watching an ad. So in in my userDidEarn
delegate method I try to update my visible cell. The delgate is triggered perfectly But somehow it's not hiding the view on my current collection view cell. What am I doing wrong here?
Thanks in advance.
My ad delegate method:
func rewardedAd(_ rewardedAd: GADRewardedAd, userDidEarn reward: GADAdReward) {
//Hide premiumHoverView from Cell
guard let indexPath = self.mainCollectionView.indexPathsForVisibleItems.first else {
return
}
let cell = self.mainCollectionView.cellForItem(at: indexPath) as! MainCollectionViewCell
// let cell = self.mainCollectionView.dequeueReusableCell(withReuseIdentifier: "MainCollectionViewCell", for: indexPath) as! MainCollectionViewCell
cell.premiumItemHoverView.isHidden = true
self.mainCollectionView.performBatchUpdates({
self.mainCollectionView.reloadItems(at: [indexPath])
}) { (isUpdated) in
}
}
isUpdated
always returns false
.
My collection view cell:
class MainCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var wallpaperImageView: UIImageView!
@IBOutlet weak var premiumItemHoverView: UIView!
@IBOutlet weak var gifImageView: UIImageView!
@IBOutlet weak var backgroundButton: UIButton!
@IBOutlet weak var watchVideoAdButton: UIButton!
func initializeCell(wallpaper: Wallpapers) {
CustomLoader.instance.showLoaderView()
if wallpaper.isPremimumItem == true {
premiumItemHoverView.isHidden = false
gifImageView.image = UIImage.gifImageWithName("addGif1")
} else {
premiumItemHoverView.isHidden = true
gifImageView.image = nil
}
let imageUrl = CommonService.shared.getDeviceRatioWiseImageUrl(wallpaper: wallpaper)
wallpaperImageView.image = nil
wallpaperImageView.loadImageUsingCache(forURLString: imageUrl, withPlaceholderImageName: "") { (success) in
if success {
DispatchQueue.main.async {
CustomLoader.instance.hideLoaderView()
}
}
}
}
}