2017-09-17 17 views
0

私はページング付きのスクロールビューを持っています。このスクロールビューでは、動的にxibをロードします。しかし、xibの高さはスクロールビューと同じでなければなりません。私の問題は、xibの高さが正しくロードされていないことです。UIScrollViewにXIBが正しくロードされていません。

xibファイル(各境界線を除いてほぼ全画面で10という制約があります)をロードすると、高さもあるため正しくロードされません大きい。

だから私はそれが私のscrollviewに収まるように、下側の制約を行う必要があります。

enter image description here

誰もが解決策を得ましたか。

+0

使用しているXcodeのバージョンは? Appleは 'Xcode 9 'のAuto Layoutと大きく変わった。あなたもそれであなたの質問を更新できる場合に役立つかもしれません。 – KSigWyatt

+0

コンテンツビューをスクロールビューで等しくなるように設定する制約を追加してください。 – RPK

答えて

1

以下のコードを試してみてください。この一般的なアプローチは、私のプロジェクトに有効です。あなたの問題は、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) 
} 
+0

助けてくれてありがとう! – LJulz

関連する問題