我有一个带分页的scrollview。在这个滚动视图中,我动态加载xibs。但是xib的高度应该与滚动视图相同。我的问题是xib的高度未正确加载:
如果我加载一个xib文件(几乎是全屏,除了每个边框的约束为10),它没有正确加载,因为高度太大。
所以我必须制作底部约束,使其适合我的scrollview:
有人有解决方案吗?
答案 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)
}