Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios AVPlayerLayer调整大小_Ios_Uiview_Avplayer_Uipangesturerecognizer_Avplayerlayer - Fatal编程技术网

Ios AVPlayerLayer调整大小

Ios AVPlayerLayer调整大小,ios,uiview,avplayer,uipangesturerecognizer,avplayerlayer,Ios,Uiview,Avplayer,Uipangesturerecognizer,Avplayerlayer,我目前正在开发一款可拆卸的AVPlayer,这样你就可以用平移手势拖动它,并将其放置在UI窗口上预定义的放置区域中。(我知道iOS 9会帮我做到这一点……但我必须在iOS 8上做到这一点) 我做了所有的工作(移动并减小/增加播放器所在的UIView的大小),它与UIView配合得很好。然而,当我同时移动/更改UIView的大小时,这个视图中的AVPlayerLayer真的很不稳定 所以这里有一个问题:如何以平滑的方式更新层的框架? 我尝试使用setNeedsDisplaynBoundSchang

我目前正在开发一款可拆卸的AVPlayer,这样你就可以用平移手势拖动它,并将其放置在UI窗口上预定义的放置区域中。(我知道iOS 9会帮我做到这一点……但我必须在iOS 8上做到这一点)

我做了所有的工作(移动并减小/增加播放器所在的UIView的大小),它与UIView配合得很好。然而,当我同时移动/更改UIView的大小时,这个视图中的AVPlayerLayer真的很不稳定

所以这里有一个问题:如何以平滑的方式更新层的框架? 我尝试使用setNeedsDisplaynBoundSchange,将其设置为YES。 我还尝试实现layoutSublayersOfLayer,在其中我将AVPlayerLayer的框架设置为UIView的边界

两人最终都落伍了,动作也不太流畅

注:在一个非常基本的项目示例中,它就像一个魅力。(除了两个视图控制器,应用程序中没有其他内容,一个显示播放器,我可以在UI窗口中开始拖动它……这太完美了)。然而,在我当前的应用程序中,播放器也被呈现在其他所有东西之上,而且这个手势仅仅在图层上是非常不自然的。应用程序的其余部分由多个视图控制器组成,但在我使用播放器时没有执行任何操作

有人对如何使其完美工作有想法吗?谢谢:)


编辑:我正在使用自动布局。AVPlayerLayer的父视图有4个约束:顶部、前导、宽度、高度。。。。每次使用pangesture拖动时,其中的4个都会更新。UIView的值是正确的。

简单地问一个问题,您是否打开或关闭了自动布局?我刚刚编辑了我的帖子以添加此信息,很抱歉我忘了提及它。@user988168您是否尝试过在父视图的
布局子视图中设置
playerLayer.frame=self.bounds
?也已经这样做了,AVPlayerLayer采用正确的值。。。但它在我的应用程序中仍然是不稳定的,但在我的示例项目中却不是。它可能与我的应用程序有关。。。。但目前它没有做任何其他事情。。。。我不明白为什么它是干的。没关系,因为有时候如果你在IB中关闭自动布局,它会工作得很好。你可以关闭它,如果它仍然不起作用,只需点击cmd+z来撤销自动布局的关闭。只是一个简单的问题,你是否打开或关闭了自动布局?我刚刚编辑了我的文章来添加这些信息,很抱歉,我忘了提到它。@user988168您在父视图的
layoutSubviews
中尝试过设置
playerLayer.frame=self.bounds吗?已经尝试过了,AVPlayerLayer采用了正确的值。。。但它在我的应用程序中仍然是不稳定的,但在我的示例项目中却不是。它可能与我的应用程序有关。。。。但目前它没有做任何其他事情。。。。我不明白为什么它是干的。没关系,因为有时候如果你在IB中关闭自动布局,它会工作得很好。你可以关闭它,如果它仍然不起作用,只需点击cmd+z来撤销自动布局的关闭。只是一个简单的问题,你是否打开或关闭了自动布局?我刚刚编辑了我的文章来添加这些信息,很抱歉,我忘了提到它。@user988168您在父视图的
layoutSubviews
中尝试过设置
playerLayer.frame=self.bounds吗?已经尝试过了,AVPlayerLayer采用了正确的值。。。但它在我的应用程序中仍然是不稳定的,但在我的示例项目中却不是。它可能与我的应用程序有关。。。。但目前它没有做任何其他事情。。。。我不明白为什么它是干的。没关系,因为有时候如果你在IB中关闭自动布局,它会工作得很好。您可以将其取下,如果仍不起作用,只需按cmd+z即可撤消自动布局的取下。