Вы установили его скрытым, когда он прекращает анимацию, а селектор выполнения останавливает анимацию через 0,5 секунды после запуска анимации. Кроме того, все это делается во время просмотра метода загрузки. Вы не можете гарантировать, что вид будет виден сразу после его загрузки. возможно, анимация запускается и останавливается еще до того, как представление отображается!
Попробуйте установить селектор выполнения в методе viewDidAppear и, по крайней мере, на начальном этапе, установите задержку на более длительное время. Вы всегда можете изменить время назад, когда узнаете, что оно видно.
Удачи