【问题标题】:Load UIViewcontroller into a scrollView smaller than screen?将 UIViewcontroller 加载到小于屏幕的滚动视图中?
【发布时间】:2018-01-14 14:54:44
【问题描述】:

我的scrollView 尺寸在高度上小于屏幕尺寸(高度的 80%)。 我想加载一些UIViewControllers

后来,当我尝试使用那个viewControllerview.height 时,它仍然有全屏的大小,而不是滚动条的大小。

我希望能够将此控制器加载到我的滚动条中并使其大小与滚动条相同,因此view.height 将是屏幕的 80%,而不是原始控制器高度,因此我可以将东西放置在正确的方式。

编辑:

           controller1  = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController

            var frm = view.frame
            frm.origin.x=CGFloat(count)*view.frame.width
            frm.origin.y=0
            frm.size.height=scrollView.frame.height
            controller1.view.frame=frm
            scrollView.addSubview(controller1.view)

【问题讨论】:

标签: ios swift


【解决方案1】:

您只能通过使用以下概念来实现这一点。

让你的 UIScrollView 在MainVC。现在你想在这里添加一些 UIViewControllers。

  1. 如果你想从storyboard得到这个

  2. 如果你想要这个code

说明

在这两种情况下,实际上您将MainVC 作为 parentVC,然后创建它的子级。每当您的MainVC 被加载时,您的子VC 也可以根据您的要求设置childVC 的框架。

要将数据从父级传递给子级,您可以通过分配变量直接执行此操作。但是在将数据从子级传递给父级时,您需要使用protocol-delegateNSNotification

还有不清楚的地方再问吧。

【讨论】:

  • 所以当你创建一个导航控制器时,它会占用一些屏幕空间,所以当你在其中设置 VC 时,它们会自动获取新的屏幕高度吗?还是您必须像在答案中那样设置他们的框架?
  • @Curnelious childVC 只取你给的高度 n parentVC 有通常的高度。对于你的更多信息ChildvC没有navigationController所以要从childVC导航你必须回到parentvcn然后导航
  • 您的解决方案实际上不起作用。我将 VC.frame.height 设置为滚动条高度,当我读取子 VC 大小时,我得到全屏大小。
  • @Curnelious 肯定你做错了什么。检查这个tutorial
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多