2011-05-07 9 views
18

मेरे पास एक UIScrollView है जहां उपयोगकर्ता स्क्रीन पर स्क्रॉल करते समय स्क्रीन के बीच में एक लेबल प्रदर्शित कर रहा हूं, समस्या यह है कि जब एनीमेशन जा रहा है तो उपयोगकर्ता अगले पृष्ठ पर स्क्रॉल नहीं कर सकता है (सभी उपयोगकर्ता इंटरैक्शन अक्षम होने लगते हैं) जब तक एनीमेशन खत्म नहीं हो जाता है।UIView एनिमेशन किसी भी स्पर्श इनपुट को रद्द कर रहा है?

लेबल प्रदर्शित करने के लिए मेरा कोड यहां दिया गया है।

if(!scrollView.dragging) 
    [UIView animateWithDuration:0.3 
          delay:0.3 
         options:UIViewAnimationOptionCurveEaseOut 
        animations:^(void){ 
         [vesselNameLabel setFrame:frame]; 
        } 
        completion:^(BOOL finished){}]; 

तो मैं स्क्रॉलव्यू पर इस रद्द करने वाले उपयोगकर्ता इंटरैक्शन से कैसे बाहर निकलता हूं?

उत्तर

45

ठीक है, इसलिए मैंने इसे समझ लिया।

उपयोगकर्ता इंटरैक्शन को डिफॉल्ट ब्लॉक द्वारा UIView के ब्लॉक एनीमेशन को बदल देता है, और इसके आस-पास पहुंचने के लिए आपको विकल्पों में से एक के रूप में UIViewAnimationOptionAllowUserInteraction को पास करने की आवश्यकता है। उम्मीद है कि किसी और के पास इस जानकारी का कुछ उपयोग भी होगा।

+1

मैंने यह भी देखा है कि यह आईओएस 4 में डिफ़ॉल्ट रूप से ब्लॉक करता है, लेकिन यह आईओएस 5 में नहीं है। मैं केवल इस मुद्दे पर आया जब मैंने एक सहयोगी के फोन पर परीक्षण किया जो अभी भी आईओएस 4 चला रहा है। – jowie

+0

डिफ़ॉल्ट रूप से ब्लॉक आईओएस में 6. – mbuc91

+0

बहुत बढ़िया, इतना आसान :) – Macistador

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