2011-09-08 10 views
14

की वर्तमान स्थिति प्राप्त करें मुझे निम्न समस्या मिली है।एनिमेटेड स्क्रोलव्यू

मैं एक UIScrollView जो contentOffset इस कोड से एनिमेटेड है subclassed:

[UIView animateWithDuration:1.0 
         delay:1.0 
        options:options 
       animations:^{ 
        self.contentOffset = CGPointMake(label.frame.size.width, 0); 

       } 
       completion:^(BOOL completed) { 
        //some other stuff 
       }]; 

अब, जब उपयोगकर्ता "willBeginDragging" scrollview, मैं वर्तमान एनीमेशन बंद करो और वर्तमान को scrollview.contentoffset सेट करना चाहते हैं स्थिति में यह uianimation में है।

उदाहरण के लिए, उपयोगकर्ता स्क्रीन में आता है, 1 सेकंड के बाद स्क्रॉल व्यू स्क्रॉलिंग शुरू होता है, यदि उपयोगकर्ता 2 सेकंड के बाद स्क्रॉल को छूता है और इसे खींचता है, तो scrollview.contentoffset में वर्तमान एनीमेशन स्थिति की सटीक स्थिति होनी चाहिए ।

यदि मुझे इच्छाबीन विधि में सामग्री ऑफ़सेट मान मिलता है, तो यह पहले से ही एनीमेशन का अंतिम मूल्य है, क्योंकि यूआनिमेशन अंत स्थिति में मान सेट करता है और फिर एनिमेट करता है।

मैं चल रहे एनीमेशन से सामग्री ऑफसेट की वर्तमान स्थिति कैसे प्राप्त करूं?

NSLog(@"pos of content x %f, y %f", [[self.layer presentationLayer] frame].origin.x, [[self.layer presentationLayer] frame].origin.y); 

प्रस्तुति परत के बारे में पढ़ा मैं `ve, लेकिन दृश्य ही एनिमेटेड नहीं है, मैं scrollview.contentoffset की जरूरत है।

mhh, कोई विचार? THX

पहले से ही हल:

self.layer presentationLayer बिल्कुल सही है।

लेकिन मैं सीमा और नहीं फ्रेम का इस्तेमाल किया था ....

क्षमा करें, अब आप और मैं यह पता: पी

तो सही कोड है:

CGPoint pos = [[self.layer presentationLayer] bounds].origin; 

एनिमेट करते समय एनिमेटेड स्क्रॉलव्यू की वर्तमान स्थिति प्राप्त करने के लिए।

उत्तर

8

आप कर सकते हैं सामग्री ऑफसेट जबकि scrollview निम्नलिखित कोड का उपयोग कर स्क्रॉल है मिलता है ...

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 

NSLog(@"%f", scrollView.contentOffset.x); 

} 
+0

बहुत बहुत – SampathKumar

+0

सब रिटर्न 0.000 धन्यवाद, –

+1

इस उत्तर विषय से हटकर है। सवाल सामग्री ऑफसेट मिड-एनीमेशन प्राप्त करने के बारे में है। यह समाधान सामग्री प्राप्त करता है प्रत्येक स्क्रॉल कॉल को ऑफ़सेट करें। – rizzes