#import <QuartzCore/QuartzCore.h>
NS_ASSUME_NONNULL_BEGIN
@interface CBAsyncDrawViewLayer : CALayer
@property (nonatomic, assign, readonly) NSInteger drawsCount; // 绘制次数避免重复绘制使用
- (void)increaseDrawCount;
@end
NS_ASSUME_NONNULL_END
#import "CBAsyncDrawViewLayer.h"
@implementation CBAsyncDrawViewLayer
- (void)increaseDrawCount {
_drawsCount += 1;
}
- (void)setNeedsDisplay {
[self increaseDrawCount];
[super setNeedsDisplay];
}
- (void)setNeedsDisplayInRect:(CGRect)r {
[self increaseDrawCount];
[super setNeedsDisplayInRect:r];
}
@end
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface CBAsyncDrawView : UIView
@end
NS_ASSUME_NONNULL_END
#import "CBAsyncDrawView.h"
#import "CBAsyncDrawViewLayer.h"
@interface CBAsyncDrawView()
@property (nonatomic , weak) CBAsyncDrawViewLayer *asyncDr