You shouldn't be using dataWithContentsOfURL:[
to download your banner image because it is synchronous and you may have already downloaded the image previously and could reuse it.
Look at changing to an asynchronous image management library like SDWebImage which will handle this for you without blocking the main thread (so neither your timer or animation will be affected).