У меня есть 40 x 40 YTPlayerView, размещенный в левом нижнем углу экрана, который я хочу анимировать к центру экрана и увеличивать размеры до 325 x 325 одновременно, когда пользователь нажимает на кнопку. Есть еще один анимационный блок, который возвращает его в исходное место и размер.
У меня установлена продолжительность анимации 0,5. Но видео не оживляет, как ожидалось. Похоже, видео и YTPlayerView меняют размер по отдельности. Видео мгновенно увеличивается до 325 x 325, а кадр медленно увеличивается до 325 x 325, поэтому на время анимации видео обрезается.
Есть похожее поведение, когда оно возвращает к исходному месту и размеру. Видео мгновенно переходит к 40 х 40, пока кадр все еще находится в центре при 325 х 325. Затем кадр переходит к 40 х 40 в течение заданной длительности 0,5. Оставшаяся область внутри кадра, когда видео меньше, просто серая.
Вот инициализация YTPlayerView. Я делаю это программно.
youtubeplayer2 = YTPlayerView.init(frame: CGRect(x: 12, y: 568, width: 40, height: 40))
youtubeplayer2.contentMode = UIViewContentMode.scaleAspectFit
youtubeplayer2.backgroundColor = UIColor.black
youtubeplayer2?.delegate = self
Вот первый анимационный блок
UIView.animate(withDuration: 0.5, delay: 0, options: [.curveEaseIn], animations: {
self.youtubeplayer2?.frame = CGRect(origin: CGPoint(x: 25, y: 5), size: CGSize(width: 325, height: 325))
self.youtubeplayer2?.layoutIfNeeded()
}, completion: nil)
Вот второй анимационный блок
UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1,
options: [.curveEaseOut], animations: {
self.youtubeplayer2?.frame = CGRect(origin: CGPoint(x: 12, y: 568), size: CGSize(width: 40, height: 40))
self.youtubeplayer2?.layoutIfNeeded()
}, completion: nil)
Анимация выглядит довольно плохо с тем, как она ведет себя в настоящее время. Особенно второй, с серой областью, появляющейся довольно ясно. Кто-нибудь знает, есть ли решение для этого. Я что-то упустил?