2013-01-24 50 views
5

के साथ कैलियर को स्थानांतरित करते समय देरी मैं कैलियर में एक छवि को स्थानांतरित करने के लिए पैन इशारा करता हूं। मुझे लगता है कि समस्या यह है कि छवि थोड़ी देर के साथ आगे बढ़ती प्रतीत होती है और मेरी उंगली में 'अटक' दिखाई नहीं देती है।पैन जेस्चर

CGPoint translation =[touche locationInView:self.view]; 
self.facePic.frame = 
CGRectMake(translation.x - self.facePic.frame.size.width/2, 
      translation.y - self.facePic.frame.size.height/2, 
      self.facePic.frame.size.width, 
      self.facePic.frame.size.height); 
+0

क्या आपको एक और ऐप में खींचने का एक उदाहरण मिल सकता है जहां कोई छोटी देरी नहीं है? आमतौर पर कुछ देरी होती है। – occulus

+0

@occulus क्या आप वाकई इसे बेहतर बनाने का कोई तरीका नहीं हैं? मैंने UIView को उपclass करने और छिद्रों को ओवरराइड करके परत को स्थानांतरित करने की भी कोशिश की, लेकिन यह वही प्रभाव था जो मेरे लिए थोड़ा अजीब था। –

उत्तर

9

मैं तुम्हें एक परत के निहित एनीमेशन का परिणाम देखने लगता है:

यहाँ (facePic CALayer है) मैं कैसे परत के लिए कदम की वास्तविक टुकड़ा है। तो फिर वहाँ इस एनीमेशन निष्क्रिय करने के लिए दो विकल्प हैं:

  1. उपयोग लेनदेन
  2. सेट परत कार्यों

उपयोग करने के लिए लेन-देन CATransaction के साथ अपने कोड लपेट

[CATransaction begin]; 
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; 
. . . 
[CATransaction commit]; 

कुछ निष्क्रिय करने के लिए परत क्रियाएं आप इसे परत init में जोड़ सकते हैं, उदाहरण के लिए स्थिति एनीमेशन:

aLayer.actions = @{@"position":[NSNull null]}; // FIXED property name 
+1

मुझे लगता है कि आपका मतलब "निहित एनीमेशन" है। इसके अलावा, यह कहने के लिए छोटा है '[कैट्रानैक्शन सेट डिज़ाइनएक्शन: हाँ] '। –

+1

इसके अलावा, यह 'aLayer.actions = ...' होना चाहिए। संपत्ति का नाम 'क्रिया 'है, न कि' क्रिया '। –

+0

@robmayoff आप बिल्कुल सही हैं – voromax