【发布时间】:2015-01-15 10:44:44
【问题描述】:
我正在创建一个 UIViewController,其中包含一些 RosyWriter 的功能,我正在对其进行改造以创建一个录像机。屏幕包含一个标题,一个包含 AVCaptureVideoPreviewLayer 的裁剪到边界的子视图(因此视频内容的子层 CALayer 被添加到该子视图中,所以我认为它的嵌套很深),以及两个按钮,就像一个切换按钮- 在 UIViewController 的 Storyboard 中以 Start 和 Stop 按钮的形式。
“开始”按钮可以正常工作,即使视频的预览层在屏幕上并显示摄像头。但是,当我开始录制时,我会切换按钮,使开始按钮隐藏,停止按钮隐藏=false。
开始按钮有效 - 当视频预览在屏幕上并更新时按下,但实际录制(在缓冲区中抓取样本并将它们写入文件 - 据我所知,与 UIKit 没有任何关系)开始了。
当视频录制处于活动状态时,显示“停止”按钮并隐藏“开始”按钮,可见的停止按钮不可按下,但仍可按下隐藏的开始按钮。
我尝试将停止按钮移到包含视频的 UIView 上方,以防 CALayer 或其他东西超出剪裁的 UIView 边界。这没有帮助。停止按钮总是表现得好像它没有启用一样 - 但它是启用的,并且没有任何东西与按钮重叠。如果包含视频的 UIView(我将重申,它低于损坏的按钮)从未显示,则该按钮可以正常工作。
谁能想到为什么会发生这种情况?我立即想到了 setNeedsLayout 和 setNeedsDisplay 并尝试将其中的一些扔进去,因为它几乎就像视图已经根据我的隐藏或显示按钮的请求进行了更新,但交互层没有更新。
谢谢
【问题讨论】:
标签: ios video uibutton hidden behavior