2011-09-01 15 views
14

मुझे UIImageview को लगातार गेंद की छवि के साथ घूमने की कोशिश करते समय समस्या आ रही है। मैं इस गेंद को अपने केंद्र धुरी पर लगातार स्पिन करना चाहता हूं। मैंने CGAffineTransform का उपयोग करने का प्रयास किया है लेकिन यह काम नहीं किया है।स्पिन UIImageView लगातार

कृपया मदद करें!

+0

आप 'UIImageView' अंदर गेंद को घुमाने की जरूरत है? यदि हां 'UIImageView' के एनीमेशन विधियों का उपयोग करने पर विचार करें – Saphrosit

उत्तर

4

यदि आप के रूप में रूपांतरण का उपयोग यह काम करना चाहिए: मैं एक काम कर समाधान के कुछ sample code अपलोड कर दिया है

itemToRotate.transform = CGAffineTransformRotate(itemToRotate.transform, currentAngle); 

। इसे स्वचालित रूप से घुमाने के लिए अपना तर्क जोड़ें ...

+0

लिंक नहीं woking: | –

+0

हूप्स ... मैंने क्लाउड ऐप खाते से हटा दिया था जहां यह एक्सओ – tipycalFlow

80

यह पुराना क्यू हो सकता है लेकिन यह विषय के खोज परिणामों के शीर्ष के पास है। यहाँ एक और अधिक कटौती और सूखी समाधान है: रोक निकालने के लिए,

CABasicAnimation *rotation; 
rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
rotation.fromValue = [NSNumber numberWithFloat:0]; 
rotation.toValue = [NSNumber numberWithFloat:(2*M_PI)]; 
rotation.duration = 1.1; // Speed 
rotation.repeatCount = HUGE_VALF; // Repeat forever. Can be a finite number. 
[yourView.layer addAnimation:rotation forKey:@"Spin"]; 

तब (QuartzCore आयात करने के लिए सुनिश्चित कर लें/QuartzCore.h)/रीसेट एनिमेशन: (कैसे रोक-इन-जगह पर के लिए टिप्पणियों देखें)

[yourView.layer removeAnimationForKey:@"Spin"]; 

तेज में:

let rotation = CABasicAnimation(keyPath: "transform.rotation") 
rotation.fromValue = 0 
rotation.toValue = 2 * M_PI 
rotation.duration = 1.1 
rotation.repeatCount = Float.infinity 
view.layer.addAnimation(rotation, forKey: "Spin") 
+0

होस्ट किया गया था जो एक मणि है। धन्यवाद –

+0

@ क्रिस्टोफर स्वसी एनीमेशन कुंजी के बीच में एनीमेशन कुंजी को हटाकर मूल स्थिति को देखते हैं, न कि परिवर्तित राज्य। परिवर्तन को संरक्षित करने का कोई तरीका? – tGilani

+1

@tGilani, परिवर्तन को संरक्षित करने के लिए, CABasicAnimation सेट अप करते समय बस 'rotation.removedOnCompletion = NO;' जोड़ें। यह एनीमेशन दृश्य प्रस्तुति परत छोड़ देगा। आईओएस एनिमेशन में उपयोग की जाने वाली विभिन्न परतों के बारे में अधिक जानकारी के लिए, मैंने यह पोस्ट बहुत उपयोगी पाया: [लिंक] (http://stackoverflow.com/a/11515749/1114876)। – adamup