verdnatura-chat/ios/Pods/SDWebImage/SDWebImage/SDWebImageIndicator.h

110 lines
2.9 KiB
Objective-C

/*
* This file is part of the SDWebImage package.
* (c) Olivier Poitrey <rs@dailymotion.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
#import "SDWebImageCompat.h"
#if SD_UIKIT || SD_MAC
/**
A protocol to custom the indicator during the image loading.
All of these methods are called from main queue.
*/
@protocol SDWebImageIndicator <NSObject>
@required
/**
The view associate to the indicator.
@return The indicator view
*/
@property (nonatomic, strong, readonly, nonnull) UIView *indicatorView;
/**
Start the animating for indicator.
*/
- (void)startAnimatingIndicator;
/**
Stop the animating for indicator.
*/
- (void)stopAnimatingIndicator;
@optional
/**
Update the loading progress (0-1.0) for indicator. Optional
@param progress The progress, value between 0 and 1.0
*/
- (void)updateIndicatorProgress:(double)progress;
@end
#pragma mark - Activity Indicator
/**
Activity indicator class.
for UIKit(macOS), it use a `UIActivityIndicatorView`.
for AppKit(macOS), it use a `NSProgressIndicator` with the spinning style.
*/
@interface SDWebImageActivityIndicator : NSObject <SDWebImageIndicator>
#if SD_UIKIT
@property (nonatomic, strong, readonly, nonnull) UIActivityIndicatorView *indicatorView;
#else
@property (nonatomic, strong, readonly, nonnull) NSProgressIndicator *indicatorView;
#endif
@end
/**
Convenience way to use activity indicator.
*/
@interface SDWebImageActivityIndicator (Conveniences)
/// gray-style activity indicator
@property (nonatomic, class, nonnull, readonly) SDWebImageActivityIndicator *grayIndicator;
/// large gray-style activity indicator
@property (nonatomic, class, nonnull, readonly) SDWebImageActivityIndicator *grayLargeIndicator;
/// white-style activity indicator
@property (nonatomic, class, nonnull, readonly) SDWebImageActivityIndicator *whiteIndicator;
/// large white-style activity indicator
@property (nonatomic, class, nonnull, readonly) SDWebImageActivityIndicator *whiteLargeIndicator;
@end
#pragma mark - Progress Indicator
/**
Progress indicator class.
for UIKit(macOS), it use a `UIProgressView`.
for AppKit(macOS), it use a `NSProgressIndicator` with the bar style.
*/
@interface SDWebImageProgressIndicator : NSObject <SDWebImageIndicator>
#if SD_UIKIT
@property (nonatomic, strong, readonly, nonnull) UIProgressView *indicatorView;
#else
@property (nonatomic, strong, readonly, nonnull) NSProgressIndicator *indicatorView;
#endif
@end
/**
Convenience way to create progress indicator. Remember to specify the indicator width or use layout constraint if need.
*/
@interface SDWebImageProgressIndicator (Conveniences)
/// default-style progress indicator
@property (nonatomic, class, nonnull, readonly) SDWebImageProgressIndicator *defaultIndicator;
/// bar-style progress indicator
@property (nonatomic, class, nonnull, readonly) SDWebImageProgressIndicator *barIndicator API_UNAVAILABLE(macos, tvos);
@end
#endif