我有以下情况:
- 我有一个名为 View1.xib 的 xib 文件,其中包含一些包含某些按钮集的堆栈 View 。
我有一个 UIView 类型的 coco touch 类,用于加载名为 View1 的 Nib。我也已成为前 xib 的所有者。下面是我用来加载 View 的代码:
override init(frame: CGRect) { super.init(frame: frame) commitInit() } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) commitInit() } private func commitInit() { Bundle.main.loadNibNamed("View1", owner: self, options: nil) containerView.frame = self.bounds containerView.autoresizingMask = [.flexibleHeight, .flexibleWidth] addSubview(containerView) }
现在,在 Storyboard中,我包含了 ScrollView 和其下的子 UIView。我已将 subview 类型定义为View1。
- 此外,我还为 View 定义了适当的约束,使其与父 ScrollView 具有相同的高度和宽度。
- 还可以找到定义如下的 ScrollView 属性:
- 这是模拟器上屏幕的样子:
现在,当我运行该项目时,我可以看到屏幕,但无法滚动所包含的 View 。因此,顶部和底部的一些元素被隐藏(越界),并且我也无法滚动。我做错了什么吗?请帮帮我。
注意 - 我对 swift 很陌生,非常感谢任何帮助。提前致谢。
最佳答案
您的newView
不能流出scrollView
的边界,因为它与您的scrollView
具有相同的高度。但是你的newView
的内容超出了newView
的边界。(你可以看看你是否将你的newView
以相同的高度放在scrollView之外并将其设置为 backgroundColor
或设置 clipToBounds
属性 true
)这就是您无法滚动的原因。
为了解决这个问题,您应该为 newView
的 height
找到另一个来源(可能是一个常量值或其 subview 的 heihgt 或 safeArea.heihgt
。这是你的选择)
关于ios - Swift - 将 subview 从 xib 加载到 UIScrollView 后,滚动不起作用并且 subview 超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51734029/