【发布时间】:2017-08-26 07:04:00
【问题描述】:
我想在 UIView 中嵌入 UIViewController。我想以编程方式创建它。我在情节提要中创建了 UIViewController。
我创建空 UIView 的代码:
let myNewView=UIView(frame: CGRect(x: (0 + screenHeight / 2), y: leftView.frame.origin.y, width: screenHeight / 2, height: leftView.frame.height))
myNewView.backgroundColor=UIColor.lightGray
self.view.addSubview(myNewView)
以及将 UIViewController 附加到视图的代码:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
var controller: UIViewController = storyboard.instantiateViewController(withIdentifier: "testView") as UIViewController
myNewView.addSubview(controller.view)
这会在我的 UIView 中显示视图,但方式不正确。 UIView 在这种情况下是 512 像素宽。而(嵌入的)UIViewcontroller 认为它是 1024 像素宽(全屏宽度)。
如何解决嵌入视图从其父级(UIView)获取宽度和高度的问题?
【问题讨论】:
-
你所做的是完全错误的。您不能以这种方式简单地将视图控制器的视图添加到您的界面中。 (至于大小,为添加的视图提供
frame取决于您。但无论如何您的视图都无法正常工作。) -
@matt 这样做的好方法是什么?
标签: swift uiview uicontainerview