以下のコードを試してみてください。この一般的なアプローチは、私のプロジェクトに有効です。あなたの問題は、heightプロパティの定義があいまいです。あなたの.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)
}
使用しているXcodeのバージョンは? Appleは 'Xcode 9 'のAuto Layoutと大きく変わった。あなたもそれであなたの質問を更新できる場合に役立つかもしれません。 – KSigWyatt
コンテンツビューをスクロールビューで等しくなるように設定する制約を追加してください。 – RPK