Ios 如何获得幻灯片或分割视图的宽度?

Ios 如何获得幻灯片或分割视图的宽度?,ios,swift,uikit,Ios,Swift,Uikit,我试图将我的视图与幻灯片覆盖和分割视图的宽度相匹配,但我找不到关于如何实现这一点的好资源,是否有人知道如何获得幻灯片覆盖或分割视图的宽度,以便我可以将视图更改为类似以下内容: calss myView: UIView { override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { ... let horizontalClass = tr

我试图将我的视图与幻灯片覆盖和分割视图的宽度相匹配,但我找不到关于如何实现这一点的好资源,是否有人知道如何获得幻灯片覆盖或分割视图的宽度,以便我可以将视图更改为类似以下内容:

calss myView: UIView {

    override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {

        ...

        let horizontalClass = traitCollection.horizontalSizeClass
        if horizontalClass == .compact {
            width = viewWidth - 20
        } else {
            width = 400
        }

        ...
    }
} 

我相信您可以通过重写
public func view willtransition(到size:CGSize,带有协调器:UIViewControllerTransitionCoordinator)
方法,而不是
func traitCollectionDidChange(\uuuuvioustraitcollection:UITraitCollection?)

您能给我一个更详细的方法实现吗?我应该将此函数放在何处?
public func viewWillTransition(到size:CGSize,带有协调器:UIViewControllerTransitionCoordinator)
将在视图控制器的视图更改其大小时被调用。因此,如果您想获得分割视图的宽度,那么这是最合适的获取位置。可以通过在主视图控制器上重写此方法来获取其大小。