我有两个控制器之间的自定义转换工作接近iOS邮件应用程序,哪一个停留在另一个顶部与一些实施的滚动行为。iOS - 呈现视图控制器从一个呈现的视图控制器更改其高度
如果我从呈现视图控制器呈现一个新的视图控制器,它不是全屏大小,然后我忽略这个新呈现的视图控制器,则先前呈现的视图控制器更改其高度,然后调整其自身大小。
我知道这可能有点混乱,但请查看下面的gif示例。
正如你可以看到,如果我提出这个自定义图像拾取器,然后关闭它,其中提出它翘曲到全屏,然后调整大小,以初始值的视图控制器。
我该如何防止这种情况发生?我希望呈现图像选择器的ViewController保持其高度。
解雇后,您可以看到调整大小发生。
设置呈现视图控制器尺寸
因为它是一个UIViewControllerAnimatedTransitioning
我创建一个自定义演示文稿和它的设置大小有它自己的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
}
}
任何提示? 谢谢
尝试self.automaticallyAdjustsScrollViewInsets = NO – karthikeyan
里面很好的例子图像选择器类还是在我称之为演示文稿的类中? –
你可以添加一些代码,它显示了你是如何设置呈现图像选择器的VC的大小。 –