Change placeholder boolean to time interval

This commit is contained in:
Ryan Nystrom
2015-02-23 14:01:17 -08:00
parent 203d500416
commit 5d76d6649f
4 changed files with 26 additions and 11 deletions

View File

@@ -332,11 +332,11 @@ typedef CALayer *(^ASDisplayNodeLayerBlock)();
@property (nonatomic, assign) BOOL placeholderEnabled;
/**
* @abstract Toggle to fade-out the placeholder when a node's contents are finished displaying.
* @abstract Set the time it takes to fade out the placeholder when a node's contents are finished displaying.
*
* @discussion Defaults to NO.
* @discussion Defaults to 0 seconds.
*/
@property (nonatomic, assign) BOOL placeholderFadesOut;
@property (nonatomic, assign) NSTimeInterval placeholderFadeDuration;
/** @name Hit Testing */
@@ -535,4 +535,8 @@ typedef CALayer *(^ASDisplayNodeLayerBlock)();
* Convenience method, equivalent to [layer addSublayer:node.layer].
*/
- (void)addSubnode:(ASDisplayNode *)node;
@end
@end
@interface ASDisplayNode (Deprecated)
@property (nonatomic, assign) BOOL placeholderFadesOut ASDISPLAYNODE_DEPRECATED;
@end

View File

@@ -124,8 +124,6 @@ void ASDisplayNodePerformBlockOnMainThread(void (^block)())
_flags.implementsImageDisplay = ([[self class] respondsToSelector:@selector(displayWithParameters:isCancelled:)] ? 1 : 0);
_flags.implementsDrawParameters = ([self respondsToSelector:@selector(drawParametersForAsyncLayer:)] ? 1 : 0);
_fadeAnimationDuration = 0.1;
ASDisplayNodeMethodOverrides overrides = ASDisplayNodeMethodOverrideNone;
if (ASDisplayNodeSubclassOverridesSelector([self class], @selector(touchesBegan:withEvent:))) {
overrides |= ASDisplayNodeMethodOverrideTouchesBegan;
@@ -1235,10 +1233,10 @@ static NSInteger incrementIfFound(NSInteger i) {
[self _tearDownPlaceholderLayer];
};
if (self.placeholderFadesOut) {
if (_placeholderFadeDuration > 0.0) {
[CATransaction begin];
[CATransaction setCompletionBlock:cleanupBlock];
[CATransaction setAnimationDuration:_fadeAnimationDuration];
[CATransaction setAnimationDuration:_placeholderFadeDuration];
_placeholderLayer.opacity = 0.0;
[CATransaction commit];
} else {
@@ -1774,3 +1772,18 @@ static const char *ASDisplayNodeAssociatedNodeKey = "ASAssociatedNode";
}
@end
@implementation ASDisplayNode (Deprecated)
- (void)setPlaceholderFadesOut:(BOOL)placeholderFadesOut
{
self.placeholderFadeDuration = placeholderFadesOut ? 0.1 : 0.0;
}
- (BOOL)placeholderFadesOut
{
return self.placeholderFadeDuration > 0.0;
}
@end

View File

@@ -71,8 +71,6 @@ typedef NS_OPTIONS(NSUInteger, ASDisplayNodeMethodOverrides) {
_ASPendingState *_pendingViewState;
NSTimeInterval _fadeAnimationDuration;
struct {
// public properties
unsigned synchronous:1;

View File

@@ -28,7 +28,7 @@ static CGFloat const kASDKLogoAspectRatio = 2.79;
{
if (self = [super init]) {
self.placeholderEnabled = YES;
self.placeholderFadesOut = YES;
self.placeholderFadeDuration = 0.1;
}
return self;
}