2017-09-13 18 views
6

zauważyłem, że ten kod nie bardzo działa zgodnie z oczekiwaniami na iOS 11, ponieważ „adjustedContentInset” zmiany wartości nieruchomości jak „navigationBar” kurczy się podczas przewijania:iOS 11: Przewiń do góry, gdy zmieni się "adjustContentInset" z większymi paskami tytułu?

CGFloat contentInsetTop=[scrollView contentInset].top; 

if (@available(iOS 11.0, *)) 
{ 
    contentInsetTop=[scrollView adjustedContentInset].top; 

} 
//// 

[scrollView setContentOffset:CGPointMake(0, -contentInsetTop) animated:YES]; 

... Na przykład może to zacząć się jako 140, a następnie zmniejszyć do 88 poza minimalnym przesunięciem przewijania. Oznacza to, że jeśli to nazwiesz, nie przewinie się on do samej góry.

Oprócz zachowaniem oryginalnego offsetu w pamięci od momentu UIScrollView obciążeń, czy istnieje sposób, aby odzyskać tę wartość później w celu zapewnienia, że ​​robi rzeczywiście przewijania do góry konsekwentnie, bez względu na „adjustedContentInset”?

Odpowiedz

1

Obecnie nie ma sposobu, aby to zrobić z iOS 11, słyszałem. Jedynym sposobem na zrobienie tego jest przechwycenie wartości początkowej i zapisanie jej na czas działania kontrolera nawigacyjnego/podglądu.

Odpowiednio zaktualizuję swoją odpowiedź, jeśli usłyszę inaczej, ale będzie ona niestety zepsuta w bazie iOS 11 na zawsze.

Powiązane problemy