[ASImageNode] More refined naming and documentation for [ASImageNode shouldShowImageScalingOverlay]

This commit is contained in:
Hannah Troisi
2016-03-08 23:30:17 -08:00
parent 3fe44b4e23
commit 51eccb3d96
3 changed files with 16 additions and 19 deletions

View File

@@ -57,10 +57,6 @@
@end
@interface ASImageNode ()
@property (nonatomic, strong) ASTextNode *debugLabelNode;
@end
@implementation ASImageNode
{
@private
@@ -74,6 +70,8 @@
BOOL _forceUpscaling; //Defaults to NO.
CGRect _cropRect; // Defaults to CGRectMake(0.5, 0.5, 0, 0)
CGRect _cropDisplayBounds;
ASTextNode *_debugLabelNode;
}
@synthesize image = _image;
@@ -95,7 +93,7 @@
_cropDisplayBounds = CGRectNull;
_placeholderColor = ASDisplayNodeDefaultPlaceholderColor();
if ([ASImageNode shouldShowImageDebugOverlay]) {
if ([ASImageNode shouldShowImageScalingOverlay]) {
_debugLabelNode = [[ASTextNode alloc] init];
_debugLabelNode.layerBacked = YES;
[self addSubnode:_debugLabelNode];
@@ -120,7 +118,6 @@
{
ASDN::MutexLocker l(_imageLock);
// if a preferredFrameSize is set, call the superclass to return that instead of using the image size.
[_debugLabelNode measure:constrainedSize];
if (CGSizeEqualToSize(self.preferredFrameSize, CGSizeZero) == NO)
return [super calculateSizeThatFits:constrainedSize];
else if (_image)
@@ -221,7 +218,6 @@
CGSize boundsSizeInPixels = CGSizeMake(floorf(bounds.size.width * contentsScale), floorf(bounds.size.height * contentsScale));
if (_debugLabelNode) {
// NSLog(@"widthScale = %f, heightScale = %f", imageSizeInPixels.width / boundsSizeInPixels.width, imageSizeInPixels.height / boundsSizeInPixels.height);
CGFloat pixelCountRatio = (imageSizeInPixels.width * imageSizeInPixels.height) / (boundsSizeInPixels.width * boundsSizeInPixels.height);
if (pixelCountRatio != 1.0) {
NSString *scaleString = [NSString stringWithFormat:@"%.2fx", pixelCountRatio];

View File

@@ -9,13 +9,15 @@
#import <Foundation/Foundation.h>
#import "ASImageNode.h"
@interface ASImageNode (Debug)
@interface ASImageNode (Debugging)
/**
* Class method to enable visualization of an ASImageNode's image size. For app debugging purposes only.
* @param enabled Specify YES to turn on this debug feature when messaging the ASImageNode class.
* Enables an ASImageNode debug label that shows the ratio of pixels in the source image to those in
* the displayed bounds (including cropRect). This helps detect excessive image fetching / downscaling,
* as well as upscaling (such as providing a URL not suitable for a Retina device). For dev purposes only.
* @param enabled Specify YES to show the label on all ASImageNodes with non-1.0x source-to-bounds pixel ratio.
*/
+ (void)setImageDebugEnabled:(BOOL)enable;
+ (BOOL)shouldShowImageDebugOverlay;
+ (void)setShouldShowImageScalingOverlay:(BOOL)show;
+ (BOOL)shouldShowImageScalingOverlay;
@end

View File

@@ -8,20 +8,19 @@
#import "AsyncDisplayKit+Debug.h"
#import "ASDisplayNode+Subclasses.h"
#import "ASTextNode.h"
static BOOL __enableImageSizeOverlay = NO;
static BOOL __shouldShowImageScalingOverlay = NO;
@implementation ASImageNode (Debug)
@implementation ASImageNode (Debugging)
+ (void)setImageDebugEnabled:(BOOL)enable;
+ (void)setShouldShowImageScalingOverlay:(BOOL)show;
{
__enableImageSizeOverlay = enable;
__shouldShowImageScalingOverlay = show;
}
+ (BOOL)shouldShowImageDebugOverlay
+ (BOOL)shouldShowImageScalingOverlay
{
return __enableImageSizeOverlay;
return __shouldShowImageScalingOverlay;
}
@end