Added autoplay control property to AnimatedImageView (autoPlayAnimatedImage)
This commit is contained in:
parent
7a430b23b9
commit
03aaaac928
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IDEDidComputeMac32BitWarning</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -20,6 +20,13 @@
|
||||||
*/
|
*/
|
||||||
@interface SDAnimatedImageView : UIImageView
|
@interface SDAnimatedImageView : UIImageView
|
||||||
|
|
||||||
|
/**
|
||||||
|
If the image has more than one frame, set this value to `YES` will automatically
|
||||||
|
play/stop the animation when the view become visible/invisible.
|
||||||
|
|
||||||
|
The default value is `YES`.
|
||||||
|
*/
|
||||||
|
@property (nonatomic) BOOL autoPlayAnimatedImage;
|
||||||
/**
|
/**
|
||||||
Current display frame image. This value is KVO Compliance.
|
Current display frame image. This value is KVO Compliance.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -93,6 +93,7 @@
|
||||||
{
|
{
|
||||||
// Pay attention that UIKit's `initWithImage:` will trigger a `setImage:` during initialization before this `commonInit`.
|
// Pay attention that UIKit's `initWithImage:` will trigger a `setImage:` during initialization before this `commonInit`.
|
||||||
// So the properties which rely on this order, should using lazy-evaluation or do extra check in `setImage:`.
|
// So the properties which rely on this order, should using lazy-evaluation or do extra check in `setImage:`.
|
||||||
|
self.autoPlayAnimatedImage = YES;
|
||||||
self.shouldCustomLoopCount = NO;
|
self.shouldCustomLoopCount = NO;
|
||||||
self.shouldIncrementalLoad = YES;
|
self.shouldIncrementalLoad = YES;
|
||||||
self.playbackRate = 1.0;
|
self.playbackRate = 1.0;
|
||||||
|
@ -183,8 +184,12 @@
|
||||||
// Ensure disabled highlighting; it's not supported (see `-setHighlighted:`).
|
// Ensure disabled highlighting; it's not supported (see `-setHighlighted:`).
|
||||||
super.highlighted = NO;
|
super.highlighted = NO;
|
||||||
|
|
||||||
// Start animating
|
if (self.autoPlayAnimatedImage) {
|
||||||
[self startAnimating];
|
// Start animating
|
||||||
|
[self startAnimating];
|
||||||
|
} else {
|
||||||
|
[self stopAnimating];
|
||||||
|
}
|
||||||
|
|
||||||
[self.imageViewLayer setNeedsDisplay];
|
[self.imageViewLayer setNeedsDisplay];
|
||||||
}
|
}
|
||||||
|
@ -258,11 +263,13 @@
|
||||||
[super didMoveToSuperview];
|
[super didMoveToSuperview];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
[self updateShouldAnimate];
|
if (self.autoPlayAnimatedImage) {
|
||||||
if (self.shouldAnimate) {
|
[self updateShouldAnimate];
|
||||||
[self startAnimating];
|
if (self.shouldAnimate) {
|
||||||
} else {
|
[self startAnimating];
|
||||||
[self stopAnimating];
|
} else {
|
||||||
|
[self stopAnimating];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,11 +285,13 @@
|
||||||
[super didMoveToWindow];
|
[super didMoveToWindow];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
[self updateShouldAnimate];
|
if (self.autoPlayAnimatedImage) {
|
||||||
if (self.shouldAnimate) {
|
[self updateShouldAnimate];
|
||||||
[self startAnimating];
|
if (self.shouldAnimate) {
|
||||||
} else {
|
[self startAnimating];
|
||||||
[self stopAnimating];
|
} else {
|
||||||
|
[self stopAnimating];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -298,11 +307,13 @@
|
||||||
[super setAlpha:alpha];
|
[super setAlpha:alpha];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
[self updateShouldAnimate];
|
if (self.autoPlayAnimatedImage) {
|
||||||
if (self.shouldAnimate) {
|
[self updateShouldAnimate];
|
||||||
[self startAnimating];
|
if (self.shouldAnimate) {
|
||||||
} else {
|
[self startAnimating];
|
||||||
[self stopAnimating];
|
} else {
|
||||||
|
[self stopAnimating];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -310,11 +321,13 @@
|
||||||
{
|
{
|
||||||
[super setHidden:hidden];
|
[super setHidden:hidden];
|
||||||
|
|
||||||
[self updateShouldAnimate];
|
if (self.autoPlayAnimatedImage) {
|
||||||
if (self.shouldAnimate) {
|
[self updateShouldAnimate];
|
||||||
[self startAnimating];
|
if (self.shouldAnimate) {
|
||||||
} else {
|
[self startAnimating];
|
||||||
[self stopAnimating];
|
} else {
|
||||||
|
[self stopAnimating];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue