/* * This file is part of the SDWebImage package. * (c) Olivier Poitrey * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ #import "SDWebImageTransition.h" #if SD_UIKIT || SD_MAC #if SD_MAC #import #endif @implementation SDWebImageTransition - (instancetype)init { self = [super init]; if (self) { self.duration = 0.5; } return self; } @end @implementation SDWebImageTransition (Conveniences) + (SDWebImageTransition *)fadeTransition { SDWebImageTransition *transition = [SDWebImageTransition new]; #if SD_UIKIT transition.animationOptions = UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAllowUserInteraction; #else transition.animations = ^(__kindof NSView * _Nonnull view, NSImage * _Nullable image) { CATransition *trans = [CATransition animation]; trans.type = kCATransitionFade; [view.layer addAnimation:trans forKey:kCATransition]; }; #endif return transition; } + (SDWebImageTransition *)flipFromLeftTransition { SDWebImageTransition *transition = [SDWebImageTransition new]; #if SD_UIKIT transition.animationOptions = UIViewAnimationOptionTransitionFlipFromLeft | UIViewAnimationOptionAllowUserInteraction; #else transition.animations = ^(__kindof NSView * _Nonnull view, NSImage * _Nullable image) { CATransition *trans = [CATransition animation]; trans.type = kCATransitionPush; trans.subtype = kCATransitionFromLeft; [view.layer addAnimation:trans forKey:kCATransition]; }; #endif return transition; } + (SDWebImageTransition *)flipFromRightTransition { SDWebImageTransition *transition = [SDWebImageTransition new]; #if SD_UIKIT transition.animationOptions = UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionAllowUserInteraction; #else transition.animations = ^(__kindof NSView * _Nonnull view, NSImage * _Nullable image) { CATransition *trans = [CATransition animation]; trans.type = kCATransitionPush; trans.subtype = kCATransitionFromRight; [view.layer addAnimation:trans forKey:kCATransition]; }; #endif return transition; } + (SDWebImageTransition *)flipFromTopTransition { SDWebImageTransition *transition = [SDWebImageTransition new]; #if SD_UIKIT transition.animationOptions = UIViewAnimationOptionTransitionFlipFromTop | UIViewAnimationOptionAllowUserInteraction; #else transition.animations = ^(__kindof NSView * _Nonnull view, NSImage * _Nullable image) { CATransition *trans = [CATransition animation]; trans.type = kCATransitionPush; trans.subtype = kCATransitionFromTop; [view.layer addAnimation:trans forKey:kCATransition]; }; #endif return transition; } + (SDWebImageTransition *)flipFromBottomTransition { SDWebImageTransition *transition = [SDWebImageTransition new]; #if SD_UIKIT transition.animationOptions = UIViewAnimationOptionTransitionFlipFromBottom | UIViewAnimationOptionAllowUserInteraction; #else transition.animations = ^(__kindof NSView * _Nonnull view, NSImage * _Nullable image) { CATransition *trans = [CATransition animation]; trans.type = kCATransitionPush; trans.subtype = kCATransitionFromBottom; [view.layer addAnimation:trans forKey:kCATransition]; }; #endif return transition; } + (SDWebImageTransition *)curlUpTransition { SDWebImageTransition *transition = [SDWebImageTransition new]; #if SD_UIKIT transition.animationOptions = UIViewAnimationOptionTransitionCurlUp | UIViewAnimationOptionAllowUserInteraction; #else transition.animations = ^(__kindof NSView * _Nonnull view, NSImage * _Nullable image) { CATransition *trans = [CATransition animation]; trans.type = kCATransitionReveal; trans.subtype = kCATransitionFromTop; [view.layer addAnimation:trans forKey:kCATransition]; }; #endif return transition; } + (SDWebImageTransition *)curlDownTransition { SDWebImageTransition *transition = [SDWebImageTransition new]; #if SD_UIKIT transition.animationOptions = UIViewAnimationOptionTransitionCurlDown | UIViewAnimationOptionAllowUserInteraction; #else transition.animations = ^(__kindof NSView * _Nonnull view, NSImage * _Nullable image) { CATransition *trans = [CATransition animation]; trans.type = kCATransitionReveal; trans.subtype = kCATransitionFromBottom; [view.layer addAnimation:trans forKey:kCATransition]; }; #endif return transition; } @end #endif