#ios #swift
Вопрос:
Я пытаюсь использовать репозиторий github voiceOverlay для интеграции речи в текст в своем приложении.
Я инициализирую голосовой контроллер, как показано в документации.
self.voiceOverlayController.start(on: self, textHandler: { (text, final, extraInfo) in
...
Представленное представление перехода в настоящее время занимает весь экран. Я хочу предоставить контроллеру фиксированный размер кадра, чтобы некоторые части экрана были доступны, даже если представлен контроллер просмотра. После просмотра файлов pod, вот где они представляют ViewController. :
inputViewController.modalPresentationStyle = .overCurrentContext
DispatchQueue.main.async {
view.present(inputViewController, animated: true)
}
Я понимаю, что .overCurrentContext
это контроллер полноэкранного режима, и, следовательно, он представляет его в полноэкранном режиме.
Я не могу определить, есть ли способ изменить размер представленного контроллера в определенном кадре. Любые зацепки будут оценены по достоинству.
Спасибо
ОБНОВЛЕНИЕ: Основываясь на совете Роба в комментариях, я попытался перейти от настоящего к подходу addChild. Но я все еще не мог получить желаемых результатов.
Вот фрагмент того, что я пытаюсь сделать.
Более ранний код :
inputViewController.modalPresentationStyle = .overCurrentContext
DispatchQueue.main.async {
view.present(inputViewController, animated: true)
}
Новый :
где view — родительский UIViewController
view.addChild(inputViewController)
inputViewController.didMove(toParent: view)
setContraintsForPresenting(view: view)
fileprivate func setContraintsForPresenting(){
InputViewController.view.translatesAutoresizingMaskIntoConstraints = false
...
}
Но когда я пытаюсь это сделать, я получаю сообщение об ошибке Instance member 'view' cannot be used on type 'InputViewController'; did you mean to use a value of this type instead?
Комментарии:
1. Рассмотрите возможность использования контейнера и представления в качестве дочернего контроллера представления. Я не знаком с библиотекой озвучивания, но, надеюсь, вы сможете представить контроллер самостоятельно. Почти уверен, что сдерживание-это то, что вам нужно.
2. Эй, @Роб, я пытался сделать то же самое, но продолжаю попадать в ошибки, я изменил свой вопрос, чтобы определить, что я сделал. Не могли бы вы взглянуть и дать мне знать, что я здесь делаю не так?