Swift - Интерактивная форма увольнения не работает iOS 13 - PullRequest
0 голосов
/ 06 марта 2020

Я представляю свой UIViewController с modalPresentationStyle = .formSheet. Все работает как положено, за исключением интерактивного закрытия этого контроллера (перетаскиваю форму сверху вниз). Контроллер отключен, но он presentingViewController не двигается назад. Это остается застрявшим с черными краями вокруг.

Если я отклоняю представленный контроллер с помощью dismiss(animated:completion:), presentingViewController перемещается назад, как и ожидалось, поэтому кажется, что он не работает только тогда, когда пользователь отклоняет его, перетаскивая.

Если вам нужны другие подробности, дайте мне знать. Спасибо. 101

Я использую iOS 13.3 и Xcode 11.2.1.

enter image description here


Обновление:

Я нашел проблему. ? Это представление, которое я представил, содержало UITableView. Я использовал свой метод для установки его tableFooterView:

extension UITableView {
    func setFooterView(_ view: UIView) {
        view.frame = bounds

        view.setNeedsLayout()
        view.layoutIfNeeded()

        let height = view.systemLayoutSizeFitting(
        CGSize(width: view.frame.width, height: UIView.layoutFittingCompressedSize.height)
        ).height
        var frame = view.frame
        frame.size.height = height
        view.frame = frame

        tableFooterView = view

        sectionFooterHeight = 0
    }
}

... и я вызвал этот метод в моем контроллере представления в viewDidLayoutSubviews(), так как думал, что именно здесь я должен установить это представление нижнего колонтитула (просто потому, что мы использовали его в разных проектах ??‍♂️):

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    tableView.setFooterView(footerView)
}

Но я был не прав. Просто позвонив в viewDidLoad(), решил.

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.setFooterView(footerView)
}

Нет, вопрос: почему?

Если кто-нибудь сможет дать правильное объяснение, почему это происходит, я был бы благодарен, и я наградил бы его / ее щедростью. ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...