如何动态地将 xib 文件视图适合故事板视图?
Posted
技术标签:
【中文标题】如何动态地将 xib 文件视图适合故事板视图?【英文标题】:How can I dynamically fit a xib file view into a storyboard view? 【发布时间】:2020-12-30 13:42:39 【问题描述】:我已经设置了一个带有按钮的简单布局,当按下该按钮时,会导致情节提要子视图加载 xib 文件并将其视图分配给情节提要子视图。问题是 xib 视图导致情节提要子视图“打破”其原始约束:
这是主故事板(左)和 xib 视图(右):
当我按下主情节提要上的按钮时会发生以下情况。
- (IBAction)btnShowView:(id)sender
xibViewController *xib_VC = [[xibViewController alloc] initWithNibName:nil bundle:nil];
xib_VC.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;
//xib_VC.view.frame.size = self.myView.frame.size;
UIView *view = xib_VC.view;
[self.myView addSubview:view];
结果如下 - 您可以看到 xib 视图导致主故事板子视图超出其约束。
我猜测动态更改故事板子视图会覆盖其原始视图和约束?在将 xib 视图分配给情节提要子视图之前,我是否必须再次以编程方式添加这些约束?
【问题讨论】:
在故事板界面构建器中使用 ContainerView 谢谢@MuhammadAnum - 这就是我要找的! 【参考方案1】:根据您的描述,您的意图似乎是将新创建的视图(xib_VC.view)放在 myView 的位置。
您提到的代码是将 xib_VC.view 作为子视图添加到 myview 中,它对其没有任何限制或向view
提供框架。
设置 xib_VC.view.frame.size
将不起作用,这是 xib_VC 中的视图框架。
如果您只需要视图,那么您不必创建视图控制器 xib。只需创建视图 xib。
以下行没有用,因为您没有使用控制器。
xib_VC.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;
【讨论】:
以上是关于如何动态地将 xib 文件视图适合故事板视图?的主要内容,如果未能解决你的问题,请参考以下文章
我有一个使用 XIB 文件的音乐播放器项目,如何将它们转换为故事板/视图控制器?