【问题标题】:How to add Scroll View in Swift 5?如何在 Swift 5 中添加滚动视图?
【发布时间】:2020-03-21 14:16:16
【问题描述】:

我想在我的项目中添加滚动视图,但在 swift 5 中我无法添加它我尝试了很多方法

@IBOutlet weak var scrollView: UIScrollView! 
@IBOutlet weak var imageViewBottomConstraint: NSLayoutConstraint!
@IBOutlet weak var imageViewLeadingConstraint: NSLayoutConstraint!
@IBOutlet weak var imageViewTopConstraint: NSLayoutConstraint!
@IBOutlet weak var imageViewTrailingConstraint: NSLayoutConstraint!

【问题讨论】:

标签: ios swift xcode view uiscrollview


【解决方案1】:

如果您首先使用界面构建器,请添加滚动视图并将滚动视图约束(顶部、底部、前导和尾随)设置为 (0,0,0,0)。视图层次结构必须是这样的view -> scroll view -> view(content view)。再次为您的内容视图添加约束。内容视图必须与父视图(滚动视图)具有相同的宽度和高度。在Document Outline 中控制从内容视图到滚动视图的拖动

更多信息你可以看看这个https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithScrollViews.html

【讨论】:

  • 您的答案虽然指向相关文档,但不正确,因为内容视图可以并且在许多情况下应该大于滚动视图。当发生这种情况时,启用滚动。你应该编辑你的答案。
  • 很好的答案,也与这个日期相关。此外,文档链接非常有用。
  • iOS 11.0 + 仅限
【解决方案2】:

当我在属性中禁用内容布局指南时,它可以 100% 工作

【讨论】:

    【解决方案3】:

    1.在storyboard中添加scrollView(1),添加需要的约束到top/bottom/trailing/leading。

    2.然后在您的滚动视图的大小检查器部分取消选中“内容布局指南”。

    3.然后你需要在你的scrollView中放入新的UIView(2),它的约束是top/bottom/trailing/leading到superView(1)和等宽到superView(1)。

    4.然后您可以添加视图的高度(2) 作为约束,也可以添加内容,这将为您的视图提供高度(2)。

    高度设置示例

    内容示例,为您的视图提供高度(2)

    【讨论】:

      【解决方案4】:

      您无需取消选中内容布局指南(它可以帮助我们)。设置它实际上并不难。以下是使用 Xcode 11+ 并支持 iOS 11+ 的方法

      1 - 添加 ScrollView 并将顶部、底部、前导和尾随约束相对于其父视图设置为 0

      2 - 添加一个内容视图(任何 UIView),将连接拖到内容布局指南并将前导、顶部、尾随和底部约束设置为 0(确保将其设置为 0)

      3 - 从您的内容视图拖动到框架布局指南并将其设置为等宽

      4 - 向内容视图添加高度约束常量

      【讨论】:

      • 在小型设备上,使用这种方法无法滚动滚动视图!有什么解决办法吗?
      • 这应该适用于所有设备尺寸 afaik
      【解决方案5】:

      您可以完全跳过约束。

      1. 将 ScrollView 添加到情节提要。
      2. 在您的 ViewController 中创建一个 IBOutlet。
      3. 设置滚动视图的高度:scrollView.contentSize = (CGSize(width: desiredWidth, height: desiredHeight)

      所需的宽度可以是数字或另一个视图的宽度。您可以通过为其创建一个 IBOutlet 来以主视图的宽度为例:scrollView.contentSize = (CGSize(width: mainView.frame.size.width, height: desiredHeight)

      所需的高度是滚动时完整显示内容所需的任何值。

      我发现这种方式更容易理解和控制。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-04
        • 2016-12-14
        • 2019-10-14
        • 1970-01-01
        相关资源
        最近更新 更多