2016-03-02 4 views
0

У меня есть этот актив в качестве фона для представления и его назначение на задний план, используя код, описанный ниже.Animate background UIImage

Анимация предназначена для анимации диагональных рядов, поэтому они перемещаются слева направо, когда происходит загрузка.

Любые указатели, как это сделать?

var view = UIImageView() 
view.translatesAutoresizingMaskIntoConstraints = false 
view.image = UIImage(assetIdentifier: "background-view") 
view.layer.cornerRadius = 8.0 
view.layer.masksToBounds = true 
view.contentMode = .ScaleAspectFill 
view.clipsToBounds = true 
view.backgroundColor = UIColor.whiteColor() 

return view 

«фон-вид» здесь enter image description here

ответ

0

Я думаю, лучше было бы, чтобы все изображения, необходимые (все кадры) для создания анимированного изображения вы хотите, и затем эти образы в UIImageView's animationImages Недвижимость.

Например, если вы получаете загрузочный бар gif loading_bar.gif, вы можете получить все разные изображения в этом gif (c.f. этот учебник среди других: http://www.macobserver.com/tmo/article/preview-extracting-frames-from-animated-gifs).

Загрузите все изображения в коде (в папке активов, например), а затем сделать что-то вроде:

func getAnimatedImages -> Array<UIImage> 
{ 
    var animatedImages = Array<UIImage>() 
    var allImagesLoaded = false 
    var i = 0 
    while !allImagesLoaded 
    { 
     if let image = UIImage(named: "background_" + String(i)) 
     { 
      animatedImages.append(image) 
      i++ 
     } 
     else 
     { 
      allImagesLoaded = true 
     } 
    } 

    return animatedImages 
} 

(если вы назвали ваши изображения background_0, background_1 и т.д ...), а затем

self.yourBackgroundImageView.animationImages = self.getAnimatedImages 
self.yourBackgroundImageView.startAnimating() 
+0

Разве мы не можем использовать некоторые свойства местоположения и анимировать его? Я хотел избегать нескольких изображений. – Sana

0

Я хотел бы использовать метод class func animatedImageNamed(_ name: String, duration duration: NSTimeInterval) -> UIImage?

Из док Apple:

Этот метод попытается загрузить изображения из файлов с именами image0 ',' image1 'и так далее вплоть до' image1024 '. Все изображения, включенные в анимированное изображение, должны иметь одинаковый размер и масштаб.

Если вы создаете анимированное изображение, вы можете назначить его вашему UIImageView, и оно будет автоматически активироваться.

Что касается создания образа @Randy была очень хорошая идея :)

+0

Я хотел не создавать больше изображений, поэтому хотел использовать одно и то же изображение и получить эффект. – Sana

+0

Вы можете кодировать анимацию. Я не знаю, может быть, использовать большее изображение и переместить его вперед> сбросить до нуля> переслать снова и так далее ... Запахи немного взломать: – mt81

+0

Конечно, вы можете сделать это с помощью основной графики ... http: //www.coreanimator.com/#animatecode – mt81

Смежные вопросы