2016-04-04 21 views
0

Ich brauche Hilfe mit dem UIScrollView. Ich lade Inhalt dieser:UIScrollView zeigt keinen dynamisch hinzugefügten Inhalt an

for i in _start ..< _loopPages { 

     let articleController = createViewController(index: i) 
     viewControllers.append(articleController) 
     articleController.didMoveToParentViewController(self) 
     scrollView.addSubview(articleController.view) 
     articleController.view.setNeedsDisplay() 
    } 

und dies ist die Funktion, die die Größe der Ansicht berechnet:

func calculateScrollViewSize(){ 
for i in _start ..< numberOfArticles { 
     let articleController = viewControllers[i] 
     articleController.view.frame = view.bounds 
     let x = i * Int(articleController.view.bounds.size.width) 
     print("RECT: ", CGRect(origin: CGPoint(x: x, y: 0), size: view.bounds.size)) 
     articleController.view.frame = CGRect(origin: CGPoint(x: x, y: 0), size: view.bounds.size) 
    } 

    let contentWidth = CGFloat(numberOfArticles) * view.bounds.size.width 
    let contentHeight = view.bounds.size.height 
    scrollView.contentSize = CGSize(width: contentWidth, height: contentHeight) 

    let offsetX = currentPage * Int(view.bounds.size.width) 
    let offsetY = 0 
    scrollView.contentOffset = CGPoint(x: offsetX, y: offsetY) 
    //scrollView.contentInset.top = 0 

    scrollView.setNeedsDisplay() 
} 

Die ersten 10 Ansichten werden geladen und angezeigt, wie sie sollten, aber wenn ich laden Die nächsten 10 Ansichten, die ich bekomme, ist Leerraum. Wenn ich die Bildschirmausrichtung ändere, werden die Seiten angezeigt, aber wenn ich nicht alles bekomme, sind es weiße Bildschirme. Ich kann durch die Bildschirme blättern, die Größe des Scrollview wird aktualisiert, aber der Inhalt wird nicht angezeigt. Wenn der Benutzer zu Seite 10 scrollt, werden die nächsten 10 geladen. Kann jemand von euch mir sagen, was ich hier falsch mache?

Antwort

0

Mein Problem war, dass die dynamisch hinzugefügten Ansichten eine Größe von Null hatten, also nachdem ich die Größe des ViewControllers (der in der Methode createViewController (index: i) erstellten) auf die Größe des Bildschirms eingestellt hatte, funktionierte alles wie ein Zauber.

Hoffe es hilft jemandem irgendwann.