Extra 20px Oben Eingefügtes UIScrollView-Problem

8

Fragen zu diesem Thema wurden gestellt. Ich habe alles versucht und konnte mein Problem nicht beheben. Ich kämpfte für 2 Stunden und jetzt poste ich das hier.

Problem: UIScrollViews oberstes contentInset hat immer 20px zusätzlichen Speicherplatz.

Ich habe Viewcontroller Xib, nicht Storyboard.

Erstens, verwandte Frage und ihre Lösung auf Stackoverflow setzt voraus, dass UIScrollView die Stammansicht von UIViewController ist. Aber mein scrollview ist nicht root view und daher vielleicht warum

  

self.automatischAdjustScrollViewInsets = NO;

funktioniert nicht

  • Ich habe einen HeaderView mit Leadingspace (0, Superview), Trailing Leerzeichen (0, Super View), Topspace (0, Superview) und feste Höhe.
  • Unter der Kopfzeile befindet sich eine Scrollview mit einem führenden Leerzeichen (0, superview), Leerzeichen (0, Superview), unteres Leerzeichen (0, Superview) und vertikal Leerzeichen (0, Header-Ansicht)
  • In der Bildlaufansicht befindet sich eine Ansicht für den Inhalt. Diese Ansicht hat Führender (0), nachstehender (0), unterster (0) und oberster (0) Platz zum Scrollen.

Hier ist der Screenshot dieses zusätzlichen 20 Pixel großen oberen Einsatzes. Extra 20px ist der schwarze Bereich zwischen weißer Linie und hellgrauem Inhalt von UIScrollView. Ich kann das nicht beheben.

Mache ich etwas falsch? Auto-Layout-Einschränkungen scheinen in Ordnung zu sein.

    
padam thapa 18.04.2015, 17:59
quelle

1 Antwort

24

Haben Sie Ihren Controller in einen navigationController eingebettet? Es scheint, dass iOS 20px oben für eine Statusleiste verlässt, aber dein Controller hat keine.

Wie auch immer, in Ihrem viewDidLoad sollte es funktionieren, wenn Sie die scrollView vor dem Aufruf von super anpassen:

%Vor%

Der Grund, warum iOS Ihre scrollView automatisch dazu zwingen könnte, ein 20px TOP contentInsset zu haben, liegt daran, dass es sich um die Ansicht mit dem Index 0 in Ihrer Hauptansicht handelt. Sie können hier weiter lesen: Ссылка

  

Standardmäßig passt ein UIViewController den Inhalt automatisch an   Einfügungen von dessen UIScrollView (einschließlich UITableViews) im View Index 0,   ganz zurück. Dies bedeutet, wenn es eine Schaltfläche, ein Label oder eine andere gibt   Blick hinter die Tischansicht, Sie erhalten dieses Verhalten nicht kostenlos.

    
Pauls 18.04.2015, 23:18
quelle

Tags und Links