In my case, when I added several sublayers to the background image, I deleted them all using
for (int i = 0 ; i < [self.backgroundImageView.layer.sublayers count]; i++ ) { [[self.backgroundImageView.layer.sublayers objectAtIndex:i] removeFromSuperlayer]; }
Note. I also repeated this
for (CALayer *layer in self.backgroundImageView.layer.sublayers) { [layer removeFromSuperlayer]; }
but this leads to BadAccess, probably for the reason that I added some CAGradientLayer to backgroundImageView.Layer. (that doesn't make much sense, though).
source share