如何将 UIScrollView 添加到基于 xib 的视图

How to add a UIScrollView to a xib based view

我正在尝试创建一个基于 UIView 的 xib。

我想添加一个 UIScrollView,然后将我的内容嵌入其中,以便它在不适合时滚动,反之亦然。

我已经创建了 xib 并添加了一个滚动视图,在顶部、左侧、底部和右侧都有 0 的锚点。

我收到一条错误消息,指出高度和宽度不明确。

从历史上看,我总是在代码中构建这些视图,使用像

这样简单的东西
...
      scrollView.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor),
      scrollView.leadingAnchor.constraint(equalTo: safeAreaLayoutGuide.leadingAnchor),
      scrollView.bottomAnchor.constraint(equalTo: safeAreaLayoutGuide.bottomAnchor),
      scrollView.trailingAnchor.constraint(equalTo: safeAreaLayoutGuide.trailingAnchor),
...
      profilePictureImageView.heightAnchor.constraint(equalToConstant: 170),
      profilePictureImageView.widthAnchor.constraint(equalToConstant: 170),

      collectionView.widthAnchor.constraint(equalTo: scrollView.widthAnchor),
      collectionView.topAnchor.constraint(equalTo: profilePictureImageView.bottomAnchor, constant: 6),
      collectionView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor),
      collectionView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor, constant: -32),
      collectionView.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor),

如何在 xib 中创建全屏滚动视图?

我看到了一堆建议随机高度为 1000 的答案,但这看起来很奇怪,尤其是因为它不需要在代码中使用这种方法。

我希望它是全宽和里面所有内容的高度。

我确实尝试将 xib base 设为 UIScrollView,但我的所有内容都被挤到了左边。

尝试在 UIView 中嵌入滚动视图(具有相同的约束),或者您可以使用嵌入在滚动视图中的 StackView

很好的解释。

解决您的问题的一个方法是禁用内容布局指南

另请参阅: