2017-09-17 1 views
0

J'ai un scrollview avec pagination. Dans cette vue de défilement, je charge dynamiquement xibs. Mais la hauteur du xib devrait être la même que la vue de défilement. Mon problème est que la hauteur du xib n'est pas chargée correctement:XIB n'est pas chargé correctement dans UIScrollView

Si je charge un fichier xib (qui est presque plein écran sauf sur chaque bordure une contrainte de 10) il n'est pas chargé correctement car la hauteur est trop gros.

Je dois faire la contrainte de fond afin qu'il tienne dans mon scrollview:

enter image description here

Quelqu'un at-il une solution?

+0

Quelle version de Xcode utilisez-vous? Apple a beaucoup changé avec Auto Layout dans 'Xcode 9'. Peut-être utile si vous pouviez mettre à jour votre question avec ça aussi. – KSigWyatt

+0

Essayez d'ajouter une contrainte qui définit la hauteur de votre vue de contenu à hauteur égale avec la vue déroulante. – RPK

Répondre

1

Essayez d'expérimenter avec le code ci-dessous. Cette approche générale fonctionne pour mon projet. Votre problème est une définition ambiguë pour la propriété height. Faites attention à trouver des contraintes inutiles dans votre fichier .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

merci ça a aidé! – LJulz