我在屏幕的左下角放置了一个40 x 40的YTPlayerView,我想使其在屏幕的中心进行动画处理,并在用户点击按钮时同时将尺寸增加到325 x 325。还有另一个动画块可以将其恢复为原始位置和大小。
我将动画持续时间设置为0.5。但是视频没有按照预期进行动画处理。看起来视频和YTPlayerView分别更改了大小。视频立即跳到325 x 325,帧慢慢增长到325 x 325,因此在动画过程中,视频会被裁剪。
当动画返回原始位置和大小时,存在类似的行为。当帧仍以325 x 325居中时,视频立即跳到40 x40。然后在给定的0.5持续时间内,帧变为40 x 40。视频较小时,帧内的剩余区域仅为灰色。
这是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)
该动画目前的行为方式看起来很糟糕。特别是第二个,灰色区域非常清晰地弹出。有谁知道这是否有解决方案。我想念什么吗?