Спасибо за отличную библиотеку! 👍
Чего именно вы пытаетесь достичь с помощью этой библиотеки?
У меня только один вопрос. Положение панели инструментов слишком близко к низу:
Неправильный ли файл safeAreaInsets.bottom?
Нужен воспроизводимый пример проекта? TestSafeArea.zip
@ zhangao0086 такая же проблема здесь на iOS13, также когда вы нажимаете Отмена, приложение вылетает .. какие-нибудь обновления по этому поводу?
пинг...
Всем привет!
Причина в настраиваемом переходе VC CropViewController. Чтобы решить эту проблему, мы должны изучить различия в iOS13, связанные с переходом или .... просто отключите его :)
файл: CropViewController.swift, строка: 561.
fileprivate func setUpCropController() {
addChild(toCropViewController)
transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)
toCropViewController.delegate = self
toCropViewController.didMove(toParent: self)
}
Чтобы использовать переход по умолчанию, мы можем прокомментировать / удалить эту строку:
transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)
Я не думаю, что эта проблема связана только с пользовательским переходом. Я представляю контроллер, нажимая его из UIImagePickerController во всплывающем окне. Всплывающее окно в iOS 13 включает стрелку в представлении, поэтому теперь этот контроллер считает, что она больше, чем есть на самом деле, и занимает дополнительное место для стрелки. Итак, если стрелка находится справа, содержимое этого контроллера просачивается за пределы экрана с правой стороны и т. Д. Что-то нужно изменить с помощью безопасной области, но я не уверен, что бы это исправить - тем более, что все это делается программно. и здесь задействовано несколько точек зрения.
Я считаю, что safeAreaLayoutGuide нужно как-то использовать, где-то, чтобы это исправить. Я только что просмотрел код, и похоже, что он нигде не включен. Жаль, что я не могу больше помочь. Вот еще пара мест, где люди сталкиваются с этой проблемой, которые также включают некоторые способы ее решения:
https://stackoverflow.com/questions/57866771/ios-problem-of-display-the-popover-border-in-the-ios13
Кроме того, если это было исправлено в текущем коде, я, возможно, не увижу этого, поскольку использую Carthage, хотя я только что проверил, и обновлений нет.
Есть новости по этому поводу? @TimOliver
Привет @ zhangao0086. Большое спасибо за исчерпывающий образец приложения!
Сейчас я занят тушением пожаров iOS 13 в некоторых других моих проектах, поэтому у меня еще не было возможности взглянуть на это. Извините!
Я изучу это, когда смогу. А пока, если кто-нибудь найдет исправление и сможет отправить PR, это будет очень признательно!
Изначально я сделал CropViewController
отдельным контроллером представления, поскольку в то время было невозможно преобразовать весь интерфейс Objective-C TOCropViewController
в Swift. Но я думаю, что совместимость улучшилась до такой степени, что теперь мы потенциально можем отказаться от оболочки. Надеюсь, это предотвратит подобные проблемы в будущем.
@TimOliver Спасибо за ответ! Я тебя полностью понимаю😃
Привет @ zhangao0086! Извините за задержку!
Наконец-то у меня появилось немного свободного времени, чтобы разобраться, что происходит. Это было странно, потому что даже на уровне родительского контейнера safeAreaInsets
были равны 0, за исключением выемки.
Я думаю, что исправил это. Это был еще один побочный эффект нового модального дисплея iOS 13. Оказывается, если вы не установите modalPresentationStyle
в .fullScreen
, контроллер представления, похоже, не подчиняется вставкам.
Я еще не отправил новую версию модуля (мой CI-сервер упал, когда я обновил его до Catalina. 😅), но я добавил флаг .fullScreen
в главную ветку. Не могли бы вы попробовать получить от мастера и посмотреть, работает ли это для вас сейчас?
Синтаксис для получения от мастера через CocoaPods:
pod 'CropViewController', :git => 'https://github.com/TimOliver/TOCropViewController.git'
Спасибо!
@TimOliver Спасибо за отличную работу!
Чудесно! Он работает именно так, как я ожидал! 👍
Мне также пришлось установить cropViewController.modalPresentationStyle = .fullScreen
в моем коде (а не просто обновить до основной ветки). Добавление примечания сюда, поскольку это было мне непонятно
Это исправление работает только для кода Swift. Кто-нибудь знает, почему он не работает в объекте C?
Самый полезный комментарий
Привет @ zhangao0086! Извините за задержку!
Наконец-то у меня появилось немного свободного времени, чтобы разобраться, что происходит. Это было странно, потому что даже на уровне родительского контейнера
safeAreaInsets
были равны 0, за исключением выемки.Я думаю, что исправил это. Это был еще один побочный эффект нового модального дисплея iOS 13. Оказывается, если вы не установите
modalPresentationStyle
в.fullScreen
, контроллер представления, похоже, не подчиняется вставкам.Я еще не отправил новую версию модуля (мой CI-сервер упал, когда я обновил его до Catalina. 😅), но я добавил флаг
.fullScreen
в главную ветку. Не могли бы вы попробовать получить от мастера и посмотреть, работает ли это для вас сейчас?Синтаксис для получения от мастера через CocoaPods:
Спасибо!