7

प्रस्तुति एनिमेट करते समय UIScrollView अलग-अलग स्थिति में स्क्रॉल करता है, मैं तीन अलग UIViewControllers पेजिंग के लिए UIScrollView का उपयोग कर रहा हूं। पेजर शुरू से पेज 1 प्रदर्शित करने के लिए शुरू होता है। तो उपयोगकर्ता शुरुआत से बाएं या दाएं स्वाइप कर सकते हैं। जब मैं मध्य दृश्य नियंत्रक से एक मॉडल दृश्य नियंत्रक प्रस्तुत करता हूं, तो UIScrollView प्रस्तुत दृश्य नियंत्रक की एनीमेशन के दौरान अस्थायी रूप से पहले पृष्ठ पर स्क्रॉल करता है। जब मैं मोडल व्यू कंट्रोलर को सबकुछ सामान्य पर वापस कर देता हूं और UIScrollView केंद्र दृश्य नियंत्रक प्रदर्शित करता है।मॉड्यूल व्यू कंट्रोलर

मैं एनीमेशन के दौरान अपनी स्थिति रखने के लिए UIScrollView की उम्मीद (और चाहता हूं) की अपेक्षा करता हूं।

यह एक तकनीकी बग नहीं है जो किसी दुर्घटना या कुछ कारण बनता है, यह सिर्फ बदसूरत है।

किसी के पास पहले कभी था? इसे कैसे ठीक किया जाये, कोई विचार?

+0

तो स्पष्ट होना, समस्या यह है कि आपके स्क्रॉल दृश्य वापस अपने प्रथम पृष्ठ पर स्क्रॉल करके किया जाता है जब 2 से एक मॉडल संक्रमण पेश है पृष्ठ? भी, क्या आप अभिभावक-बच्चे दृश्य नियंत्रक रोकथाम का उपयोग कर रहे हैं? –

+0

क्या आप कृपया uiscrollview पर पेजिंग को अक्षम करने का प्रयास कर सकते हैं और जांच सकते हैं कि यह अभी भी होता है या नहीं? –

+0

क्या आपने प्रॉपर्टी स्क्रॉल को सेट करने की कोशिश की है और फिर YES पर सक्षम है? – Woodstock

उत्तर

0

मुझे यह वही समस्या है, और अधिक जांच के बाद यह स्क्रॉलव्यू और ऑटोलाउट से संबंधित UIKit में एक बग प्रतीत होता है। viewWillAppear में, फिर

- (void)viewDidDisappear:(BOOL)animated 
{ 
    [super viewDidDisappear:animated]; 

    self.previousContentOffset = self.scrollView.contentOffset; 

    self.scrollView.contentOffset = CGPointZero; 
} 

रीसेट :,: यहाँ 'फिक्स' ...

viewDidDisappear में वर्तमान scrollview contentOffset एक संपत्ति को बचाने के लिए, और शून्य करने के लिए इसे रीसेट है :, सामग्री पहले की तुलना में वापस ऑफसेट। मैं मुख्य कतार पर इस प्रेषण करने के लिए इसे सही ढंग से काम करने के लिए पाने के लिए था:

- (void)viewWillAppear:(BOOL)animated 
{ 
    if (!CGPointEqualToPoint(self.previousContentOffset, CGPointZero)) 
    { 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      self.scrollView.contentOffset = self.previousContentOffset; 
     }); 
    } 
} 
+0

'और' viewWillDisappear 'में भी काम नहीं करता है,' scrollview.contentOffset' '{ 0, 0} '। और 'self.scrollView.contentOffset = मैन्युअल ऑफ़सेट; 'निष्पादित नहीं है, केवल देरी जोड़ने पर ही काम करता है। – jose920405

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