Я создаю UIViewController, в котором хранятся некоторые функции RosyWriter, которые я перерабатываю для создания видеомагнитофона. Экран содержит заголовок, подзаголовок с привязкой к границам, содержащий AVCaptureVideoPreviewLayer (поэтому в этот подъярус добавляется CALayer подъязыка видеоконтента, поэтому я думаю, что он довольно глубоко вложен) и две кнопки, действующие как кнопка переключения - в виде кнопок «Старт» и «Стоп», размещенных в раскадровке для UIViewController.UIView subviews обновляется визуально, но взаимодействует, как в предыдущем состоянии
Кнопка «Пуск» работает нормально, даже если слой предварительного просмотра видео находится на экране и показывает камеру. Однако, когда я начинаю запись, я переключаю кнопки круглыми, делая кнопку «Пуск» скрытой, а кнопка «Стоп» скрыта = «ложь».
Кнопка запуска - это нажатие, когда предварительный просмотр видео на экране и обновление, но фактическая запись (захват сэмплов в буферах и запись их в файл - ничто не связано с UIKit, насколько я могу видеть) не начался.
Когда видеозапись активна, при нажатии кнопки «Стоп» и нажатии кнопки «Пуск», кнопка «Просмотр» недоступна, но кнопка скрытого запуска все еще может быть нажата.
Я попытался перемещать кнопку «Стоп» над UIView, содержащей видео, в случае, если CALayer или что-то еще растягивается с обрезанными границами UIView. Это не помогает. Кнопка остановки всегда действует так, как будто она не включена - но она включена, и ничто не похоже на перекрытие кнопки. Кнопка работает нормально, если UIView, содержащий видео (который, я повторяю, ниже, чем сломанная кнопка) никогда не отображается.
Может ли кто-нибудь подумать, почему это произошло? Я сразу подумал о setNeedsLayout и setNeedsDisplay и попытался просто выбросить некоторые из них, потому что это почти так, как будто представление обновилось моим запросом, чтобы скрыть или показать кнопки, но уровень взаимодействия не обновился.
Благодаря