Ich habe einen benutzerdefinierten Übergang zwischen zwei Controller, der in der Nähe der iOS-Mail-App funktioniert, die mit einigen implementierten Scroll-Verhalten auf dem anderen bleibt.iOS - Präsentiert einen View-Controller von einem präsentierten View-Controller ändert seine Höhe
Wenn ich einen neuen Ansichtscontroller aus dem präsentierten Ansichtscontroller, der nicht Vollbildgröße ist, präsentiere, und ich diesen neuen präsentierten Ansichtscontroller verwarf, ändert der vorherige präsentierte Ansichtscontroller seine Höhe und ändert dann die Größe.
Ich weiß, dass dies ein wenig verwirrend sein könnte, aber überprüfen Sie das gif Beispiel unten.
Wie Sie sehen können, wenn ich dieses benutzerdefinierte Bild-Picker präsentieren und dann entlassen, die View-Controller, die präsentiert sie auf Vollbild verzerrt und dann ändert die Größe auf den Anfangswert.
Wie kann ich dies verhindern? Ich möchte, dass der ViewController, der den Bilderwähler darstellt, seine Höhe behält.
Nach der Kündigung können Sie sehen, die Größenänderung geschieht.
Einstellen der präsentierenden View-Controller Größe
Da es ein UIViewControllerAnimatedTransitioning
ist ich eine benutzerdefinierte Präsentation zu erstellen und die Größe es Set verfügt über einen eigenen identity
class CustomPresentationController: UIPresentationController {
override init(presentedViewController: UIViewController, presenting presentingViewController: UIViewController!) {
super.init(presentedViewController: presentedViewController, presenting: presentingViewController)
}
override var frameOfPresentedViewInContainerView: CGRect {
let containerBounds = self.containerView?.bounds
let origin = CGPoint(x: 0.0, y: ((containerBounds?.size.height)! * 0.05))
let size = CGSize(width: (containerBounds?.size.width)! , height: ((containerBounds?.size.height)! * 0.95))
// Applies the attributes
let presentedViewFrame: CGRect = CGRect(origin: origin, size: size)
return presentedViewFrame
}
override func containerViewWillLayoutSubviews() {
presentedView?.frame = frameOfPresentedViewInContainerView
}
}
Jeder Hinweis? danke
try self.automaticallyAdjustsScrollViewInsets = NO – karthikeyan
innerhalb der Bildauswahlklasse oder in der Klasse, in der ich die Präsentation anrufe? –
können Sie Code hinzufügen, der zeigt, wie genau Sie die Größe des VC einstellen, der den Bilderwähler darstellt. –