Сжатие изображений в массиве перед выполнением анимации - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть массив больших изображений (4000x4000) и больше, и я зацикливаюсь на этих изображениях во время анимации.

Цель здесь - сжать эти изображения перед загрузкой, но независимо от того, какое расширение я использую, вызов self.theImage.animationImages не работает.

Вот мой код:

    let images = [
        #imageLiteral(resourceName: "imageOne"),
        #imageLiteral(resourceName: "imageTwo"),
        #imageLiteral(resourceName: "imageThree"),
        #imageLiteral(resourceName: "imageFour"),
        #imageLiteral(resourceName: "ImageFive"),
        #imageLiteral(resourceName: "imageSix")]



    self.theImage.animationImages = images;
    self.theImage.animationDuration = 10.0
    self.theImage.layer.add(rotatePicture, forKey: nil)
    self.theImage.startAnimating()


    UIView.animate(withDuration: 1, animations:{
        self.theImage.frame.origin.y += 440
    }){_ in

        UIView.animateKeyframes(withDuration: 1, delay: 2.25, options: [.autoreverse, .repeat], animations: {
            self.theImage.frame.origin.y -= 490

        })
    }
}

1 Ответ

0 голосов
/ 27 апреля 2018

Попробуйте использовать этот метод:

func resizeImage(image:UIImage,size:CGSize) ->UIImage
    {

        let sizeconvert:CGSize = CGSize.init(width: 500, height: 300)
        UIGraphicsBeginImageContextWithOptions(size,false,0.0)
        image .draw(in: CGRect.init(x: 0, y: 0, width: size.width, height: size.height))
        let scaledImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext();
        return scaledImage;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...