আমার একটি সমস্যা ছিল যেখানে আমার ক্রমবর্ধমান ক্যাটারানসিশন / সিএএনিমেশন সিকোয়েন্সগুলির একটি সিরিজ ছিল, এনিমেশনগুলি বন্ধ হয়ে গেলে আমার সমস্ত কাস্টম অপারেশন করা দরকার ছিল, তবে আমি কেবলমাত্র অ্যানিমেশনডিসটপের জন্য একটি প্রতিনিধি হ্যান্ডলার চেয়েছিলাম।
তবে, আমার একটি সমস্যা ছিল, অ্যানিমেশনডিসটপ ডেলিগ্রেটে প্রতিটি ক্যাটারানসিশন / সিএএনিমেশন স্বতন্ত্রভাবে চিহ্নিত করার উপায় বলে মনে হয় নি।
আমি CAAnimation এর অংশ হিসাবে উন্মুক্ত কী / মান সিস্টেমের মাধ্যমে এই সমস্যাটি সমাধান করেছি।
আপনি যখন অ্যানিমেশনটি শুরু করেন যখন অ্যানিমেশনডিসটপ আগুন জ্বলতে থাকে তখন সনাক্তকারী এবং মানগুলি সেট করতে CATransition / CAAnimation এ সেটভ্যালু পদ্ধতিটি ব্যবহার করুন:
-(void)volumeControlFadeToOrange
{
CATransition* volumeControlAnimation = [CATransition animation];
[volumeControlAnimation setType:kCATransitionFade];
[volumeControlAnimation setSubtype:kCATransitionFromTop];
[volumeControlAnimation setDelegate:self];
[volumeControlLevel setBackgroundImage:[UIImage imageNamed:@"SpecialVolume1.png"] forState:UIControlStateNormal];
volumeControlLevel.enabled = true;
[volumeControlAnimation setDuration:0.7];
[volumeControlAnimation setValue:@"Special1" forKey:@"MyAnimationType"];
[[volumeControlLevel layer] addAnimation:volumeControlAnimation forKey:nil];
}
- (void)throbUp
{
doThrobUp = true;
CATransition *animation = [CATransition animation];
[animation setType:kCATransitionFade];
[animation setSubtype:kCATransitionFromTop];
[animation setDelegate:self];
[hearingAidHalo setBackgroundImage:[UIImage imageNamed:@"m13_grayglow.png"] forState:UIControlStateNormal];
[animation setDuration:2.0];
[animation setValue:@"Throb" forKey:@"MyAnimationType"];
[[hearingAidHalo layer] addAnimation:animation forKey:nil];
}
আপনার অ্যানিমেশনডিডস্টপ প্রতিনিধিতে:
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag{
NSString* value = [theAnimation valueForKey:@"MyAnimationType"];
if ([value isEqualToString:@"Throb"])
{
//... Your code here ...
return;
}
if ([value isEqualToString:@"Special1"])
{
//... Your code here ...
return;
}
//Add any future keyed animation operations when the animations are stopped.
}
এর অন্য দিকটি হ'ল এটি আপনাকে আপনার প্রতিনিধি শ্রেণিতে এটি সংরক্ষণ করার পরিবর্তে মূল মান জোড় পদ্ধতিতে রাষ্ট্র রাখতে দেয় keep যত কম কোড, তত ভাল।
কী মান জোড় কোডিংয়ের জন্য অ্যাপল রেফারেন্সটি পরীক্ষা করে দেখুন ।
অ্যানিমেশনডিডস্টপ প্রতিনিধিতে CAAnimation / CATransition সনাক্তকরণের জন্য আরও ভাল কৌশল আছে?
ধন্যবাদ, - ব্যাটগার
CAAnimation
এর delegate
তাই আপনি এটি সেট করতে করতে হতে পারে, শক্তিশালী nil
চক্র ধরে রাখা এড়িয়ে যাচ্ছেন!