ViewWillTransitionToSize 在 Swift 3 中出现故障?
Posted
技术标签:
【中文标题】ViewWillTransitionToSize 在 Swift 3 中出现故障?【英文标题】:ViewWillTransitionToSize broke in Swift 3? 【发布时间】:2016-09-26 14:52:01 【问题描述】:当我旋转设备时,我正在使用 viewWillTransitionToSize 来调整我的滑出菜单,但是它似乎在 Swift 3 中被破坏了?谁能帮我解决这个问题?我的代码如下所示:
func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: nil, completion:
_ in
let controller = self.revealViewController().rightViewController
var frame = controller?.view.frame
frame?.size.height = UIScreen.main.bounds.size.height - self.navigationController!.navigationBar.frame.size.height - self.toolBar.frame.size.height - (UIApplication.shared.isStatusBarHidden ? 0 : 20)
controller?.view.frame = frame!
)
旋转设备时好像没有调用它?
【问题讨论】:
【参考方案1】:找出问题所在,迁移到 swift 3 所做的更改不正确,函数应如下所示:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: nil, completion:
_ in
let controller = self.revealViewController().rightViewController
var frame = controller?.view.frame
frame?.size.height = UIScreen.main.bounds.size.height - self.navigationController!.navigationBar.frame.size.height - self.toolBar.frame.size.height - (UIApplication.shared.isStatusBarHidden ? 0 : 20)
controller?.view.frame = frame!
)
【讨论】:
为了将来参考,我说得对吗?唯一改变的是override
关键字?
@zneak 注意方法签名的变化。
API声明历史:func viewWillTransitionToSize(_ size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
至func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
viewWillTransition
以相反的方式工作。当设备旋转到横向时,它显示为纵向。是只有我,还是其他人有过这种经历? ***.com/questions/44632424/…以上是关于ViewWillTransitionToSize 在 Swift 3 中出现故障?的主要内容,如果未能解决你的问题,请参考以下文章
viewWillTransitionToSize:withTransitionCoordinator: 未调用
为啥 `viewWillTransitionToSize` 中检索 SafeAreaInsets 的逻辑略有错误?
ViewWillTransitionToSize 在 Swift 3 中出现故障?
viewWillTransitionToSize 返回 iPhone 12 pro max 的错误尺寸 [重复]
viewWillTransitionToSize:withTransitionCoordinator: 和 layoutSubviews: 之间的交互