XIB未在UIScrollView

时间:2017-09-17 10:44:37

标签: ios swift xcode uiscrollview

我有一个带分页的scrollview。在这个滚动视图中,我动态加载xibs。但是xib的高度应该与滚动视图相同。我的问题是xib的高度未正确加载:

如果我加载一个xib文件(几乎是全屏,除了每个边框的约束为10),它没有正确加载,因为高度太大。

所以我必须制作底部约束,使其适合我的scrollview:

enter image description here

有人有解决方案吗?

1 个答案:

答案 0 :(得分:1)

尝试尝试以下代码。这种通用方法适用于我的项目。你的问题是高度属性的模糊定义。注意在.xib中找到不必要的约束。

@IBOutlet weak var yourCustomScrollView: UIScrollView!

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // Firstly, define scrollview's position and size
    yourCustomScrollView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)

    // Load .xib with custom class from main bundle.        
    guard let xib = Bundle.main.loadNibNamed("YourXibName", owner: self, options: nil)?.first as? YourCustomXibClass else {
        fatalError("YourXibName is not found. ")
    }
    self.yourCustomScrollView.addSubView(xib)

    // Define .xib's position and size
    xib.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)
    yourCustomScrollView.contentSize = CGSize(width: self.view.frame.width, height: xib.frame.height)
}