प्रभाव है कि आप गुरुत्वाकर्षण के एक राजा/जड़ता आसानी बाहर के माध्यम से उत्पादन किया जा सकता अनुकरण के रूप में वर्णन कर रहे हैं की तरह (तेज, अंत शुरू धीमी गति से) और आसानी में (तेजी से शुरू धीमी गति से, अंत) समय कार्य
आईओएस में आसान और आसान करने के लिए समर्थन आईओएस में उपलब्ध है, इसलिए मुझे नहीं लगता कि आपको किसी बाहरी पुस्तकालय की आवश्यकता है और न ही कड़ी मेहनत है (हालांकि, जैसा कि आप कल्पना कर सकते हैं, आपके प्रभाव को बहुत अच्छी ट्यूनिंग की आवश्यकता होगी)।
यह एक आसानी बाहर प्रभाव के साथ दी गई स्थिति के लिए एक वस्तु का अनुवाद चेतन जाएगा:
[UIView animateWithDuration:2.0 delay:0
options:UIViewAnimationOptionCurveEaseOut
animations:^ {
self.image.center = finalPosition;
}
completion:NULL];
}
आप एक UIPanGestureRecognizer
के माध्यम से अपना इशारा संभाल रहे हैं, तो इशारा पहचानकर्ता के लिए दो महत्वपूर्ण जानकारी के साथ प्रदान करेगा अंतिम स्थिति की गणना करें: velocity
और translation
, जो क्रमशः प्रतिनिधित्व करते हैं कि वस्तु कितनी तेज़ी से और कितनी तेजी से स्थानांतरित की गई थी।
आप इस तरह अपने ध्यान में रखते हुए एक पैन इशारा पहचानकर्ता स्थापित कर सकते हैं (इस वस्तु आप चेतन चाहते हैं हो सकता है, मुझे लगता है कि):
UIPanGestureRecognizer* panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanFrom:)];
[yourView addGestureRecognizer:panGestureRecognizer];
[panGestureRecognizer release];
और फिर अपने हैंडलर में एनीमेशन संभाल:
- (void)handlePanFrom:(UIPanGestureRecognizer*)recognizer {
CGPoint translation = [recognizer translationInView:recognizer.view];
CGPoint velocity = [recognizer velocityInView:recognizer.view];
if (recognizer.state == UIGestureRecognizerStateBegan) {
} else if (recognizer.state == UIGestureRecognizerStateChanged) {
<track the movement>
} else if (recognizer.state == UIGestureRecognizerStateEnded) {
<animate to final position>
}
}
अगर एनीमेशन पूरा होने से पहले आप फिर से पैन करना चाहते हैं तो मुझे एनीमेशन को रोकने की ज़रूरत है तो मुझे क्या करना चाहिए? एनीमेशन हमेशा पूरा होने तक चलता है। – Howard
"इंटरप्टिबल एनिमेशन" को गुगल करने का प्रयास करें या एक नया प्रश्न पोस्ट करें (और अगर आपको पसंद है तो टिप्पणियों में मुझे पिंग करें)। – sergio
मैंने पाया कि एनीमेशन को पूरा करने से पहले मेरा काम पूरा हो गया है। धन्यवाद। – Howard