Нет анимации для отображения и скрытия главного UIViewController в UISplitViewController для конечной презентации (primaryEdge = .trailing) - PullRequest
1 голос
/ 28 мая 2020
• 1000 extension:
extension UISplitViewController {
func showMasterView(from edge: PrimaryEdge = .leading,  completion: (()->Void)? = nil) {
    primaryEdge = edge
    UIView.animate(withDuration: 0.5, animations: {
        self.preferredDisplayMode = .allVisible
    }) { (animationFinished) in
        if let completion = completion, animationFinished {
            completion()
        }
    }
}

func hideMasterView(completion: (()->Void)? = nil) {
    UIView.animate(withDuration: 0.5, animations: {
        self.preferredDisplayMode = .primaryHidden
    }) { (animationFinished) in
        if let completion = completion, animationFinished {
            completion()
        }
    }
}


func toggleMasterView( completion: (()->Void)? = nil) {
    var nextDisplayMode: UISplitViewController.DisplayMode
    switch(self.preferredDisplayMode) {
    case .primaryHidden:
        nextDisplayMode = .allVisible
    default:
        nextDisplayMode = .primaryHidden
    }
    UIView.animate(withDuration: 0.5, animations: {
        self.preferredDisplayMode = nextDisplayMode
    }) { (animationFinished) in
        if let completion = completion, animationFinished {
            completion()
        }
    }
}

func toggleMasterViewNew() {
   let barButtonItem = self.displayModeButtonItem
   UIApplication.shared.sendAction(barButtonItem.action!, to: barButtonItem.target, from: nil, for: nil)
}
}

Эти функции отлично работают с анимацией при splitV C .primaryEdge = .leading (по умолчанию), но не для .trailing - анимация прерывается, мастер v c просто появляется для отображения и скрытия. Я знаю, что могу написать собственное решение, но я хочу знать, почему .trailing презентация сломала анимацию переключения.

Итак, я надеюсь, что мы сможем найти ответ вместе :)

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