2017-09-13 12 views
6

मैंने देखा है कि इस कोड, IOS 11 पर अपेक्षा के अनुरूप है क्योंकि एक स्क्रॉल के दौरान "adjustedContentInset" संपत्ति के मूल्य "navigationBar" के रूप में परिवर्तन सिकुड़ता नहीं काफी काम करता है:आईओएस 11: बड़े शीर्षक सलाखों के साथ "समायोजित सामग्री इन्सेट" में परिवर्तन के लिए शीर्ष पर स्क्रॉल करें?

CGFloat contentInsetTop=[scrollView contentInset].top; 

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

} 
//// 

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

... उदाहरण के लिए, यह 140 के रूप में शुरू हो सकता है, फिर न्यूनतम स्क्रॉल ऑफसेट से परे 88 तक कम करें। इसका मतलब है कि यदि आप इसे कॉल करते हैं, तो यह वास्तव में शीर्ष पर सभी तरह से स्क्रॉल नहीं करता है।

अलावा मूल जब से UIScrollView लोड स्मृति में ऑफसेट संरक्षण से, यह सुनिश्चित करें कि यह वास्तव में लगातार शीर्ष पर, कोई फर्क नहीं पड़ता "adjustedContentInset" स्क्रॉल करता है बाद में इस मूल्य की वसूली के लिए एक रास्ता है?

उत्तर

1

वर्तमान में, आईओएस 11 के साथ ऐसा करने का कोई तरीका नहीं है, मैंने सुना है। ऐसा करने का एकमात्र तरीका प्रारंभिक मान को कैप्चर करना और नेविगेशन/व्यू कंट्रोलर के जीवन के लिए स्टोर करना है।

अगर मैं अन्यथा सुनता हूं तो मैं अपना जवाब तदनुसार अपडेट कर दूंगा, लेकिन यह दुर्भाग्यवश आधार आईओएस 11 रिलीज के आधार पर टूटा जाएगा।

संबंधित मुद्दे