cdts/xdts-ios 3/TreeHole/Code/Utility/WZLBadge/Protocol/WZLBadgeProtocol.h
2023-07-27 09:20:00 +08:00

106 lines
3.9 KiB
Objective-C
Executable File

//
// WZLBadgeProtocol.h
// WZLBadgeDemo
//
// Created by zilin_weng on 15/8/12.
// Copyright (c) 2015年 Weng-Zilin. All rights reserved.
//
//WZLBadgeProtocol is a protocol which any Class supported (such UIView and UIBarButtonItem) should confirm
//At present, there are two classes support WZLBadge(UIView and UIBarButtonItem). However, there may be more classes to support. Thus, it is necessary to abstract a protocol. 20150812.
#ifndef WZLBadgeDemo_WZLBadgeProtocol_h
#define WZLBadgeDemo_WZLBadgeProtocol_h
#pragma mark -- types definition
#define kBadgeBreatheAniKey @"breathe"
#define kBadgeRotateAniKey @"rotate"
#define kBadgeShakeAniKey @"shake"
#define kBadgeScaleAniKey @"scale"
#define kBadgeBounceAniKey @"bounce"
//key for associative methods during runtime
static char badgeLabelKey;
static char badgeBgColorKey;
static char badgeFontKey;
static char badgeTextColorKey;
static char badgeAniTypeKey;
static char badgeFrameKey;
static char badgeCenterOffsetKey;
static char badgeMaximumBadgeNumberKey;
static char badgeRadiusKey;
typedef NS_ENUM(NSUInteger, WBadgeStyle)
{
WBadgeStyleRedDot = 0, /* red dot style */
WBadgeStyleNumber, /* badge with number */
WBadgeStyleNew /* badge with a fixed text "new" */
};
typedef NS_ENUM(NSUInteger, WBadgeAnimType)
{
WBadgeAnimTypeNone = 0, /* without animation, badge stays still */
WBadgeAnimTypeScale, /* scale effect */
WBadgeAnimTypeShake, /* shaking effect */
WBadgeAnimTypeBounce, /* bouncing effect */
WBadgeAnimTypeBreathe /* breathing light effect, which makes badge more attractive */
};
#pragma mark -- protocol definition
@protocol WZLBadgeProtocol <NSObject>
@required
@property (nonatomic, strong) UILabel *badge; /* badge entity, which is adviced not to set manually */
@property (nonatomic, strong) UIFont *badgeFont; /* [UIFont boldSystemFontOfSize:9] by default if not set */
@property (nonatomic, strong) UIColor *badgeBgColor; /* red color by default if not set */
@property (nonatomic, strong) UIColor *badgeTextColor; /* white color by default if not set */
@property (nonatomic, assign) CGRect badgeFrame; /* we have optimized the badge frame and center.
This property is adviced not to set manually */
@property (nonatomic, assign) CGPoint badgeCenterOffset; /* offset from right-top corner. {0,0} by default */
/* For x, negative number means left offset
For y, negative number means bottom offset */
@property (nonatomic, assign) WBadgeAnimType aniType; /* NOTE that this is not animation type of badge's
appearing, nor hidding*/
@property (nonatomic, assign) NSInteger badgeMaximumBadgeNumber; /*for WBadgeStyleNumber style badge,
if badge value is above badgeMaximumBadgeNumber,
"badgeMaximumBadgeNumber+" will be printed. */
@property (nonatomic, assign) CGFloat badgeRadius;
// nomal use for red dot style of badge
/**
* show badge with red dot style and WBadgeAnimTypeNone by default.
*/
- (void)showBadge;
/**
* showBadge
*
* @param style WBadgeStyle type
* @param value (if 'style' is WBadgeStyleRedDot or WBadgeStyleNew,
this value will be ignored. In this case, any value will be ok.)
* @param aniType
*/
- (void)showBadgeWithStyle:(WBadgeStyle)style
value:(NSInteger)value
animationType:(WBadgeAnimType)aniType;
/**
* clear badge
*/
- (void)clearBadge;
@end
#endif