gpt4 book ai didi

ios - 如何使 subview 调整大小为 UIScrollView ContentSize?

转载 作者:行者123 更新时间:2023-11-30 12:27:44 25 4
gpt4 key购买 nike

我有一个 UIViewController 充当容器 View Controller 。它有一个与屏幕宽度相同的 UIScrollView,但其高度小于屏幕的高度。

UIScrollView 包含另外两个 UIViewController 的 View ,并且这些 View 可以水平滚动。

我将 contentSize 设置为这样:

scrollView.contentSize.width = self.view.bounds.width * 2

这有效并允许我水平滚动 UIViewController View 。

以下是将 UIViewController View 添加到 ScrollView 的方法:

private func addPanel(viewController: UIViewController, panel: Panel) {

let xOffset: CGFloat!
switch panel {
case .left:
xOffset = 0.0
case .right:
xOffset = self.view.bounds.width
}

let panelView = UIView(frame: CGRect(x: xOffset, y: 0, width: self.view.bounds.width, height: self.scrollView.bounds.height))

scrollView.addSubview(panelView)

let panelViewController: UIViewController! = viewController

var viewBounds = view.bounds
viewBounds.height = panelView.bounds.height

panelViewController.view.frame = view.bounds
panelView.addSubview(panelViewController.view)
addChildViewController(panelViewController)
panelViewController.didMove(toParentViewController: self)
}

由于某种原因,UIViewController View 不会调整大小以适应 UIScrollView 的高度。

我应该基于约束来做这件事吗?我该怎么做呢。我已经为此苦苦挣扎了几天并且不知所措。

本质上,UIViewController View 就像全屏 View 偏移一样,因此您看不到 View 的底部,因为屏幕底部将它们截断。

最佳答案

我只是在不知道所有代码的情况下进行猜测,但一个原因可能是您在 ScrollView 布局之前添加 subview Controller 。

添加并设置 subview 大小后, ScrollView 会根据手机大小调整其大小,但您永远不会更新 subview 。

我的建议是将 subview Controller 添加到 ScrollView ,但将框架设置代码移动到布局方法中,您知道您的 View 具有正确的(可见)框架/边界。

鉴于您正在 View Controller 中编写此内容,一种方法可能是 -viewDidLayoutSubviews

希望这是有道理的,如果没有,请随时提出更多问题。

关于ios - 如何使 subview 调整大小为 UIScrollView ContentSize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43967525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com