मैं मूल एनीमेशन का उपयोग कर NSView
में स्लाइड करने की कोशिश कर रहा हूं। मुझे लगता है कि मुझे [[view animator] setFrame:newFrame]
जैसे कुछ पर भरोसा करने के बजाय स्पष्ट एनीमेशन का उपयोग करने की आवश्यकता है। यह मुख्य रूप से इसलिए है क्योंकि एनीमेशन समाप्त होने के बाद कार्रवाई करने के लिए मुझे एनीमेशन प्रतिनिधि सेट करने की आवश्यकता है।कोर एनीमेशन का उपयोग करके एनएसवी व्यू की स्पष्ट एनीमेशन
मैंने एनिमेटर का उपयोग करके बस ठीक काम किया है, लेकिन जैसा कि मैंने कहा, एनीमेशन खत्म होने पर मुझे अधिसूचित होने की आवश्यकता है। मेरे कोड वर्तमान में लगता है कि:
// Animate the controlView
NSRect viewRect = [controlView frame];
NSPoint startingPoint = viewRect.origin;
NSPoint endingPoint = startingPoint;
endingPoint.x += viewRect.size.width;
[[controlView layer] setPosition:NSPointToCGPoint(endingPoint)];
CABasicAnimation *controlPosAnim = [CABasicAnimation animationWithKeyPath:@"position"];
[controlPosAnim setFromValue:[NSValue valueWithPoint:startingPoint]];
[controlPosAnim setToValue:[NSValue valueWithPoint:endingPoint]];
[controlPosAnim setDelegate:self];
[[controlView layer] addAnimation:controlPosAnim forKey:@"controlViewPosition"];
यह नेत्रहीन काम करता है (और मैं अंत में सूचित कर दिया है), लेकिन ऐसा लगता है जैसे वास्तविक controlView ले जाया नहीं हो लग रहा है। अगर मैं खिड़की को ताज़ा करने का कारण बनता हूं, तो नियंत्रण दृश्य गायब हो जाता है। मैं
[controlView setFrame:newFrame];
साथ
[[controlView layer] setPosition:NSPointToCGPoint(endingPoint)];
की जगह की कोशिश की और कहा कि स्थानांतरित करने के लिए दृश्य (और परत) का कारण है, लेकिन यह कुछ इस तरह है कि मेरे ऐप उसके तुरंत बाद एक SEG गलती से मर जाता है भ्रष्ट है।
स्पष्ट एनीमेशन के अधिकांश उदाहरण केवल CALayer
पर जा रहे हैं। NSView
को स्थानांतरित करने और एक प्रतिनिधि सेट करने में सक्षम होने का एक तरीका होना चाहिए। किसी भी सहायता की सराहना की जाएगी।
प्रतिक्रिया के लिए धन्यवाद। मुझे कोड के थोड़ा पुनर्गठन के साथ यह काम मिल गया। मुझे लगता है कि डब्ल्यूडब्ल्यूडीसी के दौरान ऐप्पल के उदाहरणों ने आपको एनीमेशन सेट करने से पहले दृश्य * में हेरफेर करने के लिए कहा था। तो आप एनिमेटर के साथ प्रतिनिधियों का उपयोग कैसे कर सकते हैं? मैंने इसके उदाहरणों के लिए दूर और व्यापक खोज की है और खाली आ गई है। मैंने कई पदों को भी देखा कि यह संभव नहीं था। – btschumy
प्रतिनिधि को अपने नियंत्रण में सेट करें PosAnim, इसे नियंत्रण दृश्य के एनिमेशन में जोड़ें, प्रतिनिधि विधियों को बुलाया जाएगा। –
जानकारी के लिए धन्यवाद – btschumy