【发布时间】:2019-06-19 22:59:20
【问题描述】:
我正在使用 UIPresentationController 制作自定义动画。我正在努力做到这一点,以便当按下按钮转到下一个视图控制器时,呈现的视图控制器占用了前一个视图控制器中一个 UIView 的宽度。我需要帮助的是如何从我的 UIPresentationController 类中访问 UIView 的宽度和高度。
在视图控制器中:
@IBOutlet weak var buttonView: UIView!
func width() -> CGFloat {
return buttonView.frame.size.width
}
func height() -> CGFloat {
return buttonView.frame.size.height
}
在演示控制器中:
override func size(forChildContentContainer container: UIContentContainer, withParentContainerSize parentSize: CGSize) -> CGSize {
let vc = ViewController()
return CGSize(width: vc.width(), height: vc.height())
}
我目前遇到的错误是,当我返回 buttonView.frame.size.width 或 buttonView.frame.width 时,它意外返回 nil 作为可选值。但是,宽度不是可选值,如果我打印出来也不会返回 nil。它不允许我访问要在视图控制器范围之外使用的变量。任何帮助表示赞赏。
【问题讨论】: