BBAMultiTabItem.h 2.45 KB
//
//  BBAMultiTabItem.h
//  BBAUIKit
//
//  Created by liyongrui on 2018/12/14.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <BBAUIKit/BBABadgeValueView.h>

NS_ASSUME_NONNULL_BEGIN

@class BBAMultiTabItemView;
@class BBAMultiTabItem;
@protocol BBAMultiTabItemDelegate<NSObject>
- (void)multiTabItemDidClick:(BBAMultiTabItem *)item;
@end

@interface BBAMultiTabItem: NSObject
@property (nonatomic, copy) NSString *title;
@property (nonatomic, assign) CGPoint badgeOffset;
@property (nonatomic, assign) CGFloat badgeAlpha;

@property (nonatomic, assign) CGFloat fontSize;

/// 外部设置字体
@property (nonatomic, strong) UIFont *normalfont;
@property (nonatomic, strong) UIFont *selectedfont;

/// 选中时放大比例(默认:17.0/15.0)
@property (nonatomic, assign) CGFloat selectScale;

/// 默认态颜色(默认:#666666)
@property (nonatomic, strong) UIColor *normalTextColor;

/// 选中态颜色(默认:#000000)
@property (nonatomic, strong) UIColor *selectTextColor;

/// 指示调颜色(默认:#333333)
@property (nonatomic, strong) UIColor *selectionIndicatorColor;

/// 是否选中态粗体 选中态粗体(默认:NO)
@property (nonatomic, assign, getter=isSelectedBold) BOOL selectedBold;

/// 标志在沉浸式模式下,该Item是否为沉浸式
@property (nonatomic, assign) BOOL isImmersive;

/// tab活动配置,标题前的icon地址
@property (nonatomic, copy, nullable) NSString *iconUrl;

/// tab活动配置,是否满足显示icon条件
@property (nonatomic, assign) BOOL showIcon;

/// 显示图片
@property (nonatomic, copy, nullable) NSString *picUrl;
@property (nonatomic, assign) CGFloat picWidth;
@property (nonatomic, assign) CGFloat picAlpha;

@property (nonatomic, strong) BBAMultiTabItemView *view;
@property (nonatomic, assign, getter=isSelected) BOOL selected;
@property (nonatomic, weak) id<BBAMultiTabItemDelegate> delegate;
@property (nonatomic, strong) BBABadgeValueView *badgeView;
@property (nonatomic, assign, getter=isDisplayed) BOOL displayed;
@property (nonatomic, assign) CGFloat progress;

/// 默认值0 负值标题向上移动 正值标题向下移动
@property (nonatomic, assign) CGFloat titleTopMargin;

- (instancetype)initWithTitle:(NSString *)title;
- (void)showBadge;
- (void)showBadgeText:(NSString *)text;
- (void)clearBadge;
- (BOOL)isBadgeDisplayed;
- (void)setImmersiveProgress:(CGFloat)progress textColor:(UIColor *)textColor;
- (void)updateBadgePosition;

@end

NS_ASSUME_NONNULL_END