1
A
回答
1
這不是最近的問題,所以我把它放在將來使用。希望你已經做到了。
首先您需要做的就是按照原樣按照this UIPresentationController guide。
然後調整呈現的視圖控制器幀大於2/3的屏幕。
override func containerViewWillLayoutSubviews() {
presentedView?.frame = frameOfPresentedViewInContainerView
presentedView?.layer.cornerRadius = 5.0
presentedView?.layer.masksToBounds = true
}
override func size(forChildContentContainer container: UIContentContainer,
withParentContainerSize parentSize: CGSize) -> CGSize {
switch direction {
case .left, .right:
return CGSize(width: parentSize.width*(2.0/3.0), height: parentSize.height)
case .bottom, .top:
return CGSize(width: parentSize.width, height: parentSize.height-40.0)
}
}
override var frameOfPresentedViewInContainerView: CGRect {
var frame: CGRect = .zero
frame.size = size(forChildContentContainer: presentedViewController,
withParentContainerSize: containerView!.bounds.size)
switch direction {
case .right:
frame.origin.x = containerView!.frame.width*(1.0/3.0)
case .bottom:
frame.origin.y = 40.0
default:
frame.origin = .zero
}
return frame
}
然後,調光動畫過程中設置的呈遞視圖控制器幀。
self.presentingFrame = self.presentingViewController.view.frame
var frame = self.presentingFrame
frame.size.width -= 40.0
frame.size.height -= 60.0
frame.origin.x += 20.0
frame.origin.y += 30.0
coordinator.animate(alongsideTransition: { _ in
self.dimmingView.alpha = 1.0
self.presentingViewController.view.frame = frame
self.presentingViewController.view.layer.cornerRadius = 5.0
self.presentingViewController.view.layer.masksToBounds = true
UIApplication.shared.statusBarStyle = .lightContent
})
不要忘了添加反向動畫。結果:
1
我假設它不能單單純粹的故事板實現...
- 是的,這是不可能的。
評估執行Custom View Controller Transition Animation以獲得正確的轉換&因此它應該只是在呈現的視圖控制器的子視圖上操作frame & alpha
。
相關問題
- 1. 如何呈現局部視圖爲String
- 2. 對象引用呈現局部視圖
- 3. 呈現不同的局部視圖
- 4. 呈現強類型的局部視圖
- 5. Umbraco局部視圖呈現問題
- 6. MVC - 使用Ajax呈現局部視圖
- 7. 如何將圖書館作爲自定義視圖呈現?
- 8. 呈現局部視圖。 JavaScript文件不適用於該呈現的視圖?
- 9. asp.net mvc 1.0 - 如何將部分視圖呈現爲字符串
- 10. 如何將UIViewController作爲子視圖添加到UIViewController(RootViewController)?
- 11. 如何呈現局部視圖有條件
- 12. 如何檢查呈現的局部視圖?
- 13. 如何編寫呈現局部視圖的HtmlHelper擴展方法?
- 14. 將局部變量傳遞給視圖已經加載後呈現的局部
- 15. 使用AJAX呈現視圖中的局部視圖
- 16. 使用新佈局呈現局部圖
- 17. MVC3:如何在_Layout上呈現索引視圖和局部視圖
- 18. 如何在一個視圖中呈現強類型的局部視圖?
- 19. 如何將自動佈局視圖控制器呈現爲位圖?
- 20. ASP.NET MVC 5:如何從動作鏈接呈現div中的局部視圖?
- 21. 如何訪問呈現模態視圖的UIViewController類/ className?
- 22. 在佈局中呈現強類型局部視圖MVC4剃刀
- 23. JQuery datepicker在將它作爲局部視圖的一部分動態添加後未呈現日曆圖像
- 24. 從視圖頂部呈現視圖
- 25. 將Marionette佈局呈現爲像骨幹視圖
- 26. Ajax.BeginForm帖子兩次,如果局部視圖被呈現與AJAX
- 27. 使用Ajax在同一頁面上作爲主視圖呈現局部視圖時出現問題。使用Ajax.ActionLink()
- 28. UIViewController呈現另一個UIViewController
- 29. 在另一個視圖中呈現視圖(不是局部視圖)
- 30. 部分視圖不會呈現來自另一個局部視圖的數據
你可以嘗試改變背景色以清除(所以你能夠看到的viewController這是下文),並添加另一種觀點認爲(除主視圖小)和其顏色設置爲白色。 :)只是我的想法 –