ios - Swift - 将 subview 从 xib 加载到 UIScrollView 后,滚动不起作用并且 subview 超出范围

标签 ios swift uiview uiscrollview

我有以下情况:

  1. 我有一个名为 View1.xib 的 xib 文件,其中包含一些包含某些按钮集的堆栈 View 。

View1.xib UIView

  • 我有一个 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。

  • ScrollView in main storyboard

  • 此外,我还为 View 定义了适当的约束,使其与父 ScrollView 具有相同的高度和宽度。
  • Scrollview constraints

  • 还可以找到定义如下的 ScrollView 属性:
  • ScrollView Properties

  • 这是模拟器上屏幕的样子:
  • Emulator

    现在,当我运行该项目时,我可以看到屏幕,但无法滚动所包含的 View 。因此,顶部和底部的一些元素被隐藏(越界),并且我也无法滚动。我做错了什么吗?请帮帮我。

    注意 - 我对 swift 很陌生,非常感谢任何帮助。提前致谢。

    最佳答案

    您的newView不能流出scrollView的边界,因为它与您的scrollView具有相同的高度。但是你的newView的内容超出了newView的边界。(你可以看看你是否将你的newView以相同的高度放在scrollView之外并将其设置为 backgroundColor 或设置 clipToBounds 属性 true)这就是您无法滚动的原因。

    为了解决这个问题,您应该为 newViewheight 找到另一个来源(可能是一个常量值或其 subview 的 heihgt 或 safeArea.heihgt 。这是你的选择)

    关于ios - Swift - 将 subview 从 xib 加载到 UIScrollView 后,滚动不起作用并且 subview 超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51734029/

    相关文章:

    ios - UITableViewCell 左右边距

    ios - 从用户手机 Objective C 分享视频

    ios - 使用选定的 TableView 项和选项卡栏 Controller 显示 View Controller

    swift - 适用于 Swift 5 和 Facebook SDK 5 的 Facebook GraphRequest

    objective-c - 解决涉及枚举的 Swift.h 和 Bridging-Header.h 循环引用

    ios - 在没有 Storyboard 的情况下在 UIView 中添加 UICollectionView

    ios - 如何在不更改代码的情况下更改 iOS 应用程序中的 API URL?

    swift - 无法获取一个特定小时的 dateFromString

    swift - UICollectionView 中的 ScrollToItem 没有发生任何事情

    ios - iOS 中 ScrollView 中的可扩展 UIView