子视图容器与swift中的所需宽度不匹配

时间:2017-04-09 13:38:48

标签: ios swift uicontainerview childviews

我有一个视图容器,只显示1个带手机的屏幕,2个带有标签。因此,在ViewDidLoad()中,我使用方法

 func addListController(){
    self.addChildViewController(listController!)
    listController?.view.frame = defineListSize()
    self.containerView.addSubview((listController?.view)!)
    listController?.didMove(toParentViewController: self)
}

其中方法defineListSize确定第一个子节点的大小

 func defineListSize() -> CGRect {
    var rect :CGRect = CGRect(x: 0, y: 0, width: self.containerView.frame.size.width, height: self.containerView.frame.size.height)

    switch (deviceIdiom) {
    case .tv:
        rect = CGRect(x: 0, y: 0, width: self.containerView.frame.size.width/2, height: self.containerView.frame.size.height)
    case .pad:
        rect = CGRect(x: 0, y: 0, width: self.containerView.frame.size.width/2, height: self.containerView.frame.size.height)
    case .phone:
        rect = CGRect(x: 0, y: 0, width: self.containerView.frame.size.width, height: self.containerView.frame.size.height)
    case .unspecified: break
    default: break
    }

    return rect
}

然而,当第一个孩子被添加到平板电脑上时,它总是比容器视图的一半更宽。虽然,在调试中,我可以看到rect具有良好的数据。我试图在viewWillAppear或viewWillLayoutSubviews()中使用addListController(),但结果相同。 第二个子视图,当添加在右侧时,具有良好的尺寸,并切割第一个孩子的右侧部分。

问题出在哪里? 感谢

0 个答案:

没有答案