Browse Source

1. 新增第三方tabbar库

huangxiaodong 1 year ago
parent
commit
d33450a878
41 changed files with 4334 additions and 2711 deletions
  1. 2 0
      创维盒子/Podfile
  2. 5 1
      创维盒子/Podfile.lock
  3. 62 0
      创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar.h
  4. 294 0
      创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar.m
  5. 22 0
      创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarBadge.h
  6. 75 0
      创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarBadge.m
  7. 24 0
      创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarDefine.h
  8. 189 0
      创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarItem.h
  9. 329 0
      创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarItem.m
  10. 21 0
      创维盒子/Pods/AxcAE_TabBar/LICENSE
  11. 124 0
      创维盒子/Pods/AxcAE_TabBar/README.md
  12. 1 0
      创维盒子/Pods/Headers/Private/AxcAE_TabBar/AxcAE_TabBar.h
  13. 1 0
      创维盒子/Pods/Headers/Private/AxcAE_TabBar/AxcAE_TabBarBadge.h
  14. 1 0
      创维盒子/Pods/Headers/Private/AxcAE_TabBar/AxcAE_TabBarDefine.h
  15. 1 0
      创维盒子/Pods/Headers/Private/AxcAE_TabBar/AxcAE_TabBarItem.h
  16. 1 0
      创维盒子/Pods/Headers/Public/AxcAE_TabBar/AxcAE_TabBar.h
  17. 1 0
      创维盒子/Pods/Headers/Public/AxcAE_TabBar/AxcAE_TabBarBadge.h
  18. 1 0
      创维盒子/Pods/Headers/Public/AxcAE_TabBar/AxcAE_TabBarDefine.h
  19. 1 0
      创维盒子/Pods/Headers/Public/AxcAE_TabBar/AxcAE_TabBarItem.h
  20. 5 1
      创维盒子/Pods/Manifest.lock
  21. 2882 2689
      创维盒子/Pods/Pods.xcodeproj/project.pbxproj
  22. 58 0
      创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/AxcAE_TabBar.xcscheme
  23. 5 0
      创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/xcschememanagement.plist
  24. 5 0
      创维盒子/Pods/Target Support Files/AxcAE_TabBar/AxcAE_TabBar-dummy.m
  25. 12 0
      创维盒子/Pods/Target Support Files/AxcAE_TabBar/AxcAE_TabBar-prefix.pch
  26. 12 0
      创维盒子/Pods/Target Support Files/AxcAE_TabBar/AxcAE_TabBar.debug.xcconfig
  27. 12 0
      创维盒子/Pods/Target Support Files/AxcAE_TabBar/AxcAE_TabBar.release.xcconfig
  28. 1 1
      创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.debug.xcconfig
  29. 1 1
      创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.release.xcconfig
  30. 25 0
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.markdown
  31. 31 0
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.plist
  32. 3 3
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.debug.xcconfig
  33. 3 3
      创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.release.xcconfig
  34. 25 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.markdown
  35. 31 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.plist
  36. 3 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.debug.xcconfig
  37. 3 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.release.xcconfig
  38. 25 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.markdown
  39. 31 0
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.plist
  40. 3 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.debug.xcconfig
  41. 3 3
      创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.release.xcconfig

+ 2 - 0
创维盒子/Podfile

@@ -31,6 +31,8 @@ def all_Pods
 
   pod 'SDCycleScrollView','>= 1.82'
   pod 'YCDownloadSession'
+
+  pod 'AxcAE_TabBar'
 end
 
 target '隐私保护' do

+ 5 - 1
创维盒子/Podfile.lock

@@ -14,6 +14,7 @@ PODS:
   - AFNetworking/Serialization (4.0.1)
   - AFNetworking/UIKit (4.0.1):
     - AFNetworking/NSURLSession
+  - AxcAE_TabBar (1.0.5)
   - Bugly (2.5.91)
   - CocoaAsyncSocket (7.6.5)
   - HUPhotoBrowser (1.4.5):
@@ -60,6 +61,7 @@ PODS:
 
 DEPENDENCIES:
   - AFNetworking
+  - AxcAE_TabBar
   - Bugly
   - CocoaAsyncSocket
   - HUPhotoBrowser
@@ -79,6 +81,7 @@ DEPENDENCIES:
 SPEC REPOS:
   trunk:
     - AFNetworking
+    - AxcAE_TabBar
     - Bugly
     - CocoaAsyncSocket
     - HUPhotoBrowser
@@ -102,6 +105,7 @@ EXTERNAL SOURCES:
 
 SPEC CHECKSUMS:
   AFNetworking: 7864c38297c79aaca1500c33288e429c3451fdce
+  AxcAE_TabBar: 1d5bcf6c4921889dc38839b6ba2c584a9b55251a
   Bugly: afe841bba2ea6de6d432a3c125240a5e75949c55
   CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
   HUPhotoBrowser: 87a8333c111a4e71ebf5400bf66d0eeb522c0098
@@ -120,6 +124,6 @@ SPEC CHECKSUMS:
   WechatOpenSDK: 290989072e87b79d52225a01bb4e5e58f6f88593
   YCDownloadSession: a95e2449c6d01af8ba0d5977ce79a9f596f4245d
 
-PODFILE CHECKSUM: 40eefe9c28218c56e2841a152219087225f08167
+PODFILE CHECKSUM: e4e993bd8041230e4379591dd645326985e8fad8
 
 COCOAPODS: 1.11.3

+ 62 - 0
创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar.h

@@ -0,0 +1,62 @@
+//
+//  AxcAE_TabBar.h
+//  Axc_AEUI
+//
+//  Created by Axc on 2018/6/2.
+//  Copyright © 2018年 AxcLogo. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "AxcAE_TabBarBadge.h"
+#import "AxcAE_TabBarItem.h"
+
+@class AxcAE_TabBar;
+@class AxcAE_TabBarConfigModel;
+
+
+
+@protocol AxcAE_TabBarDelegate <NSObject >
+
+- (void)axcAE_TabBar:(AxcAE_TabBar *)tabbar selectIndex:(NSInteger)index;
+
+@end
+
+@interface AxcAE_TabBar : UIView
+#pragma mark - 主动属性
+// 重载构造创建方法
+- (instancetype)initWithTabBarConfig:(NSArray <AxcAE_TabBarConfigModel *> *)tabBarConfig;
+// 直接设置/SET方法
+@property(nonatomic, strong)NSArray <AxcAE_TabBarConfigModel *>*tabBarConfig;
+// 进行item子视图重新布局 最好推荐在TabBarVC中的 -viewDidLayoutSubviews 中执行,可以达到自动布局的效果
+- (void)viewDidLayoutItems;
+// TabBar背景图
+@property(nonatomic, strong)UIImageView *backgroundImageView;
+// 当前选中的 TabBar
+@property (nonatomic, strong) AxcAE_TabBarItem *currentSelectItem;
+// 设置角标
+- (void)setBadge:(NSString *)Badge index:(NSUInteger)index;
+// 是否开启毛玻璃模糊效果 默认NO不开启
+@property(nonatomic, assign)BOOL translucent;
+// 模糊效果的构造Style
+@property(nonatomic, strong)UIBlurEffect* effect;
+// 模糊效果的视图
+@property(nonatomic, strong)UIVisualEffectView* effectView;
+
+#pragma mark - 存储/获取属性
+// 使/获取 当前选中下标
+@property (nonatomic, assign) NSInteger selectIndex;
+// 是否触发设置的动画效果
+- (void)setSelectIndex:(NSInteger)selectIndex WithAnimation:(BOOL )animation;
+
+// TabbarItems集合
+@property (nonatomic, readonly, strong) NSArray <AxcAE_TabBarItem *> *tabBarItems;
+// 代理
+@property (nonatomic, weak) id <AxcAE_TabBarDelegate>delegate;
+
+
+
+
+@end
+
+
+

+ 294 - 0
创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar.m

@@ -0,0 +1,294 @@
+//
+//  AxcAE_TabBar.m
+//  Axc_AEUI
+//
+//  Created by Axc on 2018/6/2.
+//  Copyright © 2018年 AxcLogo. All rights reserved.
+//
+
+#import "AxcAE_TabBar.h"
+
+#define Item_TAG_initial_Value 100
+
+@interface AxcAE_TabBar ()
+;
+// 对内指针
+@property (nonatomic, strong) NSMutableArray <AxcAE_TabBarItem *> *items;
+
+
+@end
+
+@implementation AxcAE_TabBar
+#pragma mark - 构造
+- (instancetype)init{
+    self = [super init];
+    if (self) {
+        [self configuration];
+    }
+    return self;
+}
+- (instancetype)initWithCoder:(NSCoder *)coder{
+    self = [super initWithCoder:coder];
+    if (self) {
+        [self configuration];
+    }
+    return self;
+}
+- (instancetype)initWithFrame:(CGRect)frame{
+    self = [super initWithFrame:frame];
+    if (self) {
+        [self configuration];
+    }
+    return self;
+}
+- (instancetype)initWithTabBarConfig:(NSArray<AxcAE_TabBarConfigModel *> *)tabBarConfig{
+    self = [super init];
+    if (self) {
+        [self configuration];
+        [self setTabBarConfig:tabBarConfig];
+    }
+    return self;
+}
+- (void)layoutSubviews{
+    [super layoutSubviews];
+    [self viewDidLayoutItems]; // 进行布局 (因为需要封装,所以没打算在第一时间进行布局)
+    [self itemDidLayoutBulge];
+    [self layoutTabBarSubViews];
+}
+
+
+
+#pragma mark - 配置实例
+- (void)configuration{
+    [self hiddenUITabBarButton]; // 8.4补丁
+    [self addSubview:self.backgroundImageView]; // 添加背景图
+    [self.backgroundImageView addSubview:self.effectView];
+}
+#pragma mark - 常规配置
+// 设置items
+- (void)setTabBarConfig:(NSArray<AxcAE_TabBarConfigModel *> *)tabBarConfig{
+    _tabBarConfig = tabBarConfig;
+    [_tabBarConfig enumerateObjectsUsingBlock:^(AxcAE_TabBarConfigModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+        AxcAE_TabBarItem *item = [[AxcAE_TabBarItem alloc] initWithModel:obj]; // 模型转成实例
+        item.itemIndex = idx; // 交付索引
+        item.tintColor = self.tintColor;
+        item.tag = Item_TAG_initial_Value + idx; // 区分Tag
+        [item addTarget:self action:@selector(click_tabBarItem:) forControlEvents:UIControlEventTouchUpInside];
+        if (!idx) {
+            item.isSelect = YES;
+        }
+        [self addSubview:item];
+        [self.items addObject:item];
+    }];
+}
+static AxcAE_TabBarItem *lastItem;
+// 点击的tabbarItem
+- (void)click_tabBarItem:(AxcAE_TabBarItem *)sender{
+    NSInteger clickIndex = sender.tag - Item_TAG_initial_Value;
+    [self switch_tabBarItemIndex:clickIndex WithAnimation:YES];
+}
+// 切换页面/状态
+- (void)switch_tabBarItemIndex:(NSInteger )index WithAnimation:(BOOL )animation{
+    // 1.切换tabbar的状态
+    [self.items enumerateObjectsUsingBlock:^(AxcAE_TabBarItem * _Nonnull item, NSUInteger idx, BOOL * _Nonnull stop) {
+        item.isSelect = index == idx; // 当前点击的调整选中,其他否定
+    }];
+    // 动画逻辑
+    WeakSelf; // 2.通过回调点击事件让代理去执行切换选项卡的任务
+    AxcAE_TabBarItem *item = self.items[index];
+    if (item.itemModel.isRepeatClick) { // 允许重复点击触发动画
+        if (animation) [item startStrringConfigAnimation]; // 开始执行设置的动画效果
+        if (self.delegate && [self.delegate respondsToSelector:@selector(axcAE_TabBar:selectIndex:)]) {
+            [self.delegate axcAE_TabBar:weakSelf selectIndex:index];
+        }
+    }else{
+        if (![lastItem isEqual: item]) { // 不是上次点击的
+            lastItem = item;
+            if (animation) [item startStrringConfigAnimation]; // 开始执行设置的动画效果
+            if (self.delegate && [self.delegate respondsToSelector:@selector(axcAE_TabBar:selectIndex:)]) {
+                [self.delegate axcAE_TabBar:weakSelf selectIndex:index];
+            }
+        }
+    }
+    [self hiddenUITabBarButton];
+}
+// 文字重叠,隐藏系统的tabbaritem
+- (void)hiddenUITabBarButton{
+    if ([self.superview isKindOfClass:[UITabBar class]]) {
+        UITabBar *tabbar = (UITabBar *)self.superview;
+        dispatch_queue_t queue  = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
+        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), queue, ^{
+            dispatch_async(dispatch_get_main_queue(), ^{
+                for (UIView *btn in tabbar.subviews) {
+                    if ([btn isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
+                        btn.hidden = YES;
+                    }
+                }
+                [self.superview bringSubviewToFront:self]; // 放置到最前
+            });
+        });
+    }
+}
+
+// 进行item布局
+- (void)viewDidLayoutItems{
+    CGFloat screenAverageWidth = self.frame.size.width/self.items.count;
+    [self.items enumerateObjectsUsingBlock:^(AxcAE_TabBarItem * _Nonnull item, NSUInteger idx, BOOL * _Nonnull stop) {
+        CGRect itemFrame = item.frame;
+        CGFloat itemHeight = self.frame.size.height;
+        if (AxcAE_IsiPhoneX || itemHeight > 50) {
+            itemHeight = 49; // iphoneX高度要小
+        }
+        BOOL isNoSettingItemSize = !item.itemModel.itemSize.width || !item.itemModel.itemSize.height;
+        if (isNoSettingItemSize) { // 没设置则为默认填充模式
+            itemFrame.origin.x = idx * screenAverageWidth;
+            itemFrame.size = CGSizeMake(screenAverageWidth , itemHeight);
+        }else{ // 如果设置了大小
+            itemFrame.size = item.itemModel.itemSize;
+            // 进行动态布局
+            switch (item.itemModel.alignmentStyle) { // item对齐模式
+                case AxcAE_TabBarConfigAlignmentStyleCenter:{               // 居中 默认
+                    itemFrame.origin.x = idx * screenAverageWidth + (screenAverageWidth - item.itemModel.itemSize.width)/2;
+                    itemFrame.origin.y = (itemHeight - item.itemModel.itemSize.height)/2;
+                }break;
+                case AxcAE_TabBarConfigAlignmentStyleCenterTop:{            // 居中顶部对齐
+                    itemFrame.origin.x = idx * screenAverageWidth + (screenAverageWidth - item.itemModel.itemSize.width)/2;
+                    itemFrame.origin.y = 0;
+                }break;
+                case AxcAE_TabBarConfigAlignmentStyleCenterLeft:{           // 居中靠左对齐
+                    itemFrame.origin.x = idx * screenAverageWidth;
+                    itemFrame.origin.y = (itemHeight - item.itemModel.itemSize.height)/2;
+                }break;
+                case AxcAE_TabBarConfigAlignmentStyleCenterRight:{          // 居中靠右对齐
+                    itemFrame.origin.x = idx * screenAverageWidth + (screenAverageWidth - item.itemModel.itemSize.width);
+                    itemFrame.origin.y = (itemHeight - item.itemModel.itemSize.height)/2;
+                }break;
+                case AxcAE_TabBarConfigAlignmentStyleCenterBottom:{         // 居中靠下对齐
+                    itemFrame.origin.x = idx * screenAverageWidth + (screenAverageWidth - item.itemModel.itemSize.width)/2;
+                    itemFrame.origin.y = itemHeight - item.itemModel.itemSize.height;
+                }break;
+                case AxcAE_TabBarConfigAlignmentStyleTopLeft:{        // 上左对齐
+                    itemFrame.origin.x = idx * screenAverageWidth;
+                    itemFrame.origin.y = 0;
+                }break;
+                case AxcAE_TabBarConfigAlignmentStyleTopRight:{       // 上右对齐
+                    itemFrame.origin.x = idx * screenAverageWidth + (screenAverageWidth - item.itemModel.itemSize.width);
+                    itemFrame.origin.y = 0;
+                }break;
+                case AxcAE_TabBarConfigAlignmentStyleBottomLeft:{     // 下左对齐
+                    itemFrame.origin.x = idx * screenAverageWidth;
+                    itemFrame.origin.y = itemHeight - item.itemModel.itemSize.height;
+                }break;
+                case AxcAE_TabBarConfigAlignmentStyleBottomRight:{    // 下右对齐
+                    itemFrame.origin.x = idx * screenAverageWidth + (screenAverageWidth - item.itemModel.itemSize.width);
+                    itemFrame.origin.y = itemHeight - item.itemModel.itemSize.height;
+                }break;
+                default: break;
+            }
+        }
+        item.frame = itemFrame;
+        // 通知Item同时开始计算坐标
+        [item itemDidLayoutControl];
+    }];
+}
+- (void)setBadge:(NSString *)Badge index:(NSUInteger)index{
+    if (index < self.items.count) {
+        AxcAE_TabBarItem *item = self.items[index];
+        item.badge = Badge;
+    }else{
+        NSException *excp = [NSException exceptionWithName:@"AxcAE_TabBar Error"
+                                                    reason:@"设置脚标越界!" userInfo:nil];
+        [excp raise]; // 抛出异常
+    }
+}
+- (void)layoutTabBarSubViews{
+    // 适配背景图
+    self.backgroundImageView.frame = self.frame;
+    self.effectView.frame = self.frame;
+}
+// 适配凸出
+- (void)itemDidLayoutBulge{
+    CGFloat screenAverageWidth = self.frame.size.width/self.items.count;
+    [self.items enumerateObjectsUsingBlock:^(AxcAE_TabBarItem * _Nonnull item, NSUInteger idx, BOOL * _Nonnull stop) {
+        CGRect itemFrame = item.frame;
+        CGFloat sideLength = MAX(itemFrame.size.width, itemFrame.size.height);
+        switch (item.itemModel.bulgeStyle) {
+            case AxcAE_TabBarConfigBulgeStyleNormal:{
+            }break;         // 无 默认
+            case AxcAE_TabBarConfigBulgeStyleCircular:{
+                itemFrame.size = CGSizeMake(sideLength, sideLength);
+                itemFrame.origin.y = - item.itemModel.bulgeHeight;
+                itemFrame.origin.x = idx * screenAverageWidth + (screenAverageWidth - sideLength)/2; // 居中
+                item.frame = itemFrame;
+                item.layer.masksToBounds = YES;
+                if (item.itemModel.bulgeRoundedCorners) {
+                    item.layer.cornerRadius = item.itemModel.bulgeRoundedCorners;
+                }else{
+                    item.layer.cornerRadius = sideLength/2;
+                }
+            }break;           // 圆形
+            case AxcAE_TabBarConfigBulgeStyleSquare:{
+                itemFrame.origin.y = - item.itemModel.bulgeHeight;
+                itemFrame.origin.x = idx * screenAverageWidth + (screenAverageWidth - itemFrame.size.width)/2; // 居中
+                item.frame = itemFrame;
+                if (item.itemModel.bulgeRoundedCorners) {
+                    item.layer.masksToBounds = YES;
+                    item.layer.cornerRadius = item.itemModel.bulgeRoundedCorners;
+                }
+            }break;              // 方形
+            default: break;
+        }
+        item.frame = itemFrame;
+    }];
+}
+
+#pragma mark - SET/GET
+- (NSArray<AxcAE_TabBarItem *> *)tabBarItems{
+    return self.items;
+}
+- (AxcAE_TabBarItem *)currentSelectItem{
+    return [self.tabBarItems objectAtIndex:self.selectIndex];
+}
+- (void)setSelectIndex:(NSInteger)selectIndex{
+    _selectIndex = selectIndex; // 设置执行Set后实时切换页面
+    [self switch_tabBarItemIndex:_selectIndex WithAnimation:NO];
+}
+- (void)setSelectIndex:(NSInteger)selectIndex WithAnimation:(BOOL )animation{
+    [self switch_tabBarItemIndex:_selectIndex WithAnimation:animation];
+}
+- (void)setTranslucent:(BOOL)translucent{
+    _translucent = translucent;
+    self.effectView.hidden = !_translucent;
+}
+
+
+#pragma mark - 懒加载
+- (UIBlurEffect *)effect{
+    if (!_effect) {
+        _effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
+    }
+    return _effect;
+}
+- (UIVisualEffectView *)effectView{
+    if (!_effectView) {
+        _effectView = [[UIVisualEffectView alloc] initWithEffect:self.effect];
+        _effectView.frame = self.bounds;
+        _effectView.hidden = YES;
+    }
+    return _effectView;
+}
+
+- (UIImageView *)backgroundImageView{
+    if (!_backgroundImageView) {
+        _backgroundImageView = [UIImageView new];
+    }
+    return _backgroundImageView;
+}
+- (NSMutableArray<AxcAE_TabBarItem *> *)items{
+    if (!_items) {
+        _items = @[].mutableCopy;
+    }
+    return _items;
+}
+
+@end

+ 22 - 0
创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarBadge.h

@@ -0,0 +1,22 @@
+//
+//  AxcAE_TabBarBadge.h
+//  Axc_AEUI
+//
+//  Created by Axc on 2018/6/2.
+//  Copyright © 2018年 AxcLogo. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "AxcAE_TabBarDefine.h"
+
+@interface AxcAE_TabBarBadge : UILabel
+// 文字或者数字
+@property (nonatomic, strong) NSString *badgeText;
+// 为零是否自动隐藏 默认不隐藏
+@property(nonatomic, assign)BOOL automaticHidden;
+// 气泡高度,默认15
+@property(nonatomic, assign)CGFloat badgeHeight;
+// 气泡宽度,默认0 设置宽度后由你来决定要多宽
+@property(nonatomic , assign)CGFloat badgeWidth;
+
+@end

+ 75 - 0
创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarBadge.m

@@ -0,0 +1,75 @@
+//
+//  AxcAE_TabBarBadge.m
+//  Axc_AEUI
+//
+//  Created by Axc on 2018/6/2.
+//  Copyright © 2018年 AxcLogo. All rights reserved.
+//
+
+#import "AxcAE_TabBarBadge.h"
+
+@implementation AxcAE_TabBarBadge
+
+#pragma mark - 构造
+- (instancetype)init{
+    self = [super init];
+    if (self) {
+        [self configuration];
+    }
+    return self;
+}
+- (instancetype)initWithCoder:(NSCoder *)coder{
+    self = [super initWithCoder:coder];
+    if (self) {
+        [self configuration];
+    }
+    return self;
+}
+- (instancetype)initWithFrame:(CGRect)frame{
+    self = [super initWithFrame:frame];
+    if (self) {
+        [self configuration];
+    }
+    return self;
+}
+////////
+- (void)setFrame:(CGRect)frame{
+    [super setFrame:frame];
+    self.layer.cornerRadius = self.frame.size.height/2.0;
+}
+#pragma mark - 配置实例
+// 默认属性
+- (void)configuration{
+    self.backgroundColor = AxcAE_TabBarItemBadgeRed;
+    self.textColor = [UIColor whiteColor];
+    self.font = [UIFont boldSystemFontOfSize:10];
+    self.textAlignment = NSTextAlignmentCenter;
+    self.clipsToBounds = YES;
+    self.automaticHidden = NO;
+    self.badgeHeight = 15;
+}
+- (void)setBadgeText:(NSString *)badgeText{
+    _badgeText = badgeText;
+    self.text = _badgeText;
+    CGFloat widths = _badgeText.length*9<20?20:_badgeText.length*9;
+    if (self.badgeWidth) {
+        widths = self.badgeWidth;
+    }
+    if (_badgeText.integerValue) { // 是数字 或者不为0
+        self.hidden = NO; // 不管咋地先取消隐藏
+        if (_badgeText.integerValue > 99) {
+            self.text = @"99+";
+        }
+    }else{ //
+        if (!_badgeText.length) { // 长度为0的空串
+            self.hidden = self.automaticHidden;
+        }
+    }
+    CGRect frame = self.frame;
+    frame.size.width = widths;
+    frame.size.height = self.badgeHeight;
+    self.frame = frame;
+}
+
+
+@end

+ 24 - 0
创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarDefine.h

@@ -0,0 +1,24 @@
+//
+//  AxcAE_TabBarDefine.h
+//  Axc_AEUI
+//
+//  Created by Axc on 2018/6/2.
+//  Copyright © 2018年 AxcLogo. All rights reserved.
+//
+
+#ifndef AxcAE_TabBarDefine_h
+#define AxcAE_TabBarDefine_h
+
+// weak
+#define WeakSelf __weak typeof(self)weakSelf = self
+
+#define AxcAE_TabBarRGBA(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]
+#define AxcAE_TabBarRGB(r,g,b) AxcAE_TabBarRGBA(r,g,b,1.0f)
+
+#define AxcAE_TabBarItemSlectBlue AxcAE_TabBarRGB(59,185,222)
+#define AxcAE_TabBarItemBadgeRed  AxcAE_TabBarRGB(255,38,0)
+
+#define AxcAE_IsiPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
+
+
+#endif /* AxcAE_TabBarDefine_h */

+ 189 - 0
创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarItem.h

@@ -0,0 +1,189 @@
+//
+//  AxcAE_TabBarItem.h
+//  Axc_AEUI
+//
+//  Created by Axc on 2018/6/2.
+//  Copyright © 2018年 AxcLogo. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "AxcAE_TabBarBadge.h"
+
+// 凸出后的形状
+typedef NS_ENUM(NSInteger, AxcAE_TabBarConfigBulgeStyle) {
+    AxcAE_TabBarConfigBulgeStyleNormal = 0,         // 无 默认
+    AxcAE_TabBarConfigBulgeStyleCircular,           // 圆形
+    AxcAE_TabBarConfigBulgeStyleSquare              // 方形
+};
+
+// item相对在tabbar的独立单元格布局
+typedef NS_ENUM(NSInteger, AxcAE_TabBarConfigAlignmentStyle) {
+    AxcAE_TabBarConfigAlignmentStyleCenter = 0,           // 居中 默认
+    AxcAE_TabBarConfigAlignmentStyleCenterTop,            // 顶部对齐
+    AxcAE_TabBarConfigAlignmentStyleCenterLeft,           // 靠左对齐
+    AxcAE_TabBarConfigAlignmentStyleCenterRight,          // 靠右对齐
+    AxcAE_TabBarConfigAlignmentStyleCenterBottom,         // 靠下对齐
+    
+    AxcAE_TabBarConfigAlignmentStyleTopLeft,        // 上左对齐
+    AxcAE_TabBarConfigAlignmentStyleTopRight,       // 上右对齐
+    
+    AxcAE_TabBarConfigAlignmentStyleBottomLeft,     // 下左对齐
+    AxcAE_TabBarConfigAlignmentStyleBottomRight,    // 下右对齐
+};
+
+// item内部组件布局模式
+typedef NS_ENUM(NSInteger, AxcAE_TabBarItemLayoutStyle) {
+    AxcAE_TabBarItemLayoutStyleTopPictureBottomTitle = 0,   // 上图片下文字 默认
+    AxcAE_TabBarItemLayoutStyleBottomPictureTopTitle,       // 下图片上文字
+    AxcAE_TabBarItemLayoutStyleLeftPictureRightTitle,       // 左图片右文字
+    AxcAE_TabBarItemLayoutStyleRightPictureLeftTitle,       // 右图片左文字
+    AxcAE_TabBarItemLayoutStylePicture,                     // 单图片占满全部
+    AxcAE_TabBarItemLayoutStyleTitle,                       // 单标题占满全部
+};
+
+// item的Badge脚标方位
+typedef NS_ENUM(NSInteger, AxcAE_TabBarItemBadgeStyle) {
+    AxcAE_TabBarItemBadgeStyleTopRight = 0,   // 右上方 默认
+    AxcAE_TabBarItemBadgeStyleTopCenter,      // 上中间
+    AxcAE_TabBarItemBadgeStyleTopLeft         // 左上方
+};
+
+// 点击触发时候的交互效果
+typedef NS_ENUM(NSInteger, AxcAE_TabBarInteractionEffectStyle) {
+    AxcAE_TabBarInteractionEffectStyleNone,     // 无 默认
+    AxcAE_TabBarInteractionEffectStyleSpring,   // 放大放小弹簧效果
+    AxcAE_TabBarInteractionEffectStyleShake,    // 摇动动画效果
+    AxcAE_TabBarInteractionEffectStyleAlpha,    // 透明动画效果
+    AxcAE_TabBarInteractionEffectStyleCustom,   // 自定义动画效果
+};
+
+@class AxcAE_TabBarItem;
+// 当交互效果选选择自定义时,会回调以下Block
+typedef void(^CustomInteractionEffectBlock) (AxcAE_TabBarItem *item);
+
+
+@interface AxcAE_TabBarConfigModel : NSObject
+
+#pragma mark - 标题控制类
+// item的标题
+@property(nonatomic, copy)NSString *itemTitle;
+// 默认标题颜色 默认灰色
+@property (nonatomic, strong) UIColor *normalColor;
+// 选中标题颜色 默认AxcAE_TabBarItemSlectBlue
+@property (nonatomic, strong) UIColor *selectColor;
+
+#pragma mark - 图片控制类
+// 选中后的图片名称
+@property(nonatomic, copy)NSString *selectImageName;
+// 正常的图片名称
+@property(nonatomic, copy)NSString *normalImageName;
+// 默认的 图片tintColor
+@property(nonatomic, strong)UIColor *normalTintColor;
+// 选中的 图片tintColor
+@property(nonatomic, strong)UIColor *selectTintColor;
+
+#pragma mark - item背景控制类
+// 默认的 按钮背景Color 默认无
+@property(nonatomic, strong)UIColor *normalBackgroundColor;
+// 选中的 按钮背景Color 默认无
+@property(nonatomic, strong)UIColor *selectBackgroundColor;
+// 单个item的背景图
+@property(nonatomic, strong)UIImageView *backgroundImageView;
+
+#pragma mark - item附加控制类
+// 凸出形变类型
+@property(nonatomic, assign)AxcAE_TabBarConfigBulgeStyle bulgeStyle;
+// 凸出高于TabBar多高 默认20
+@property(nonatomic, assign)CGFloat bulgeHeight;
+// 突出后圆角 默认0  如果是圆形的圆角,则会根据设置的ItemSize最大宽度自动裁切,设置后将按照此参数进行裁切
+@property(nonatomic, assign)CGFloat bulgeRoundedCorners;
+// item相对TabBar对齐模式
+@property(nonatomic, assign)AxcAE_TabBarConfigAlignmentStyle alignmentStyle;
+// item大小
+@property(nonatomic, assign)CGSize itemSize;
+// 角标内容
+@property(nonatomic, strong)NSString *badge;
+// 角标方位
+@property(nonatomic, assign)AxcAE_TabBarItemBadgeStyle itemBadgeStyle;
+// 为零是否自动隐藏 默认不隐藏
+@property(nonatomic, assign)BOOL automaticHidden;
+
+#pragma mark - item内部组件控制类
+// TitleLabel指针
+@property (nonatomic, strong) UILabel *titleLabel;
+// imageView
+@property (nonatomic, strong) UIImageView *icomImgView;
+// item内部组件布局模式
+@property(nonatomic, assign)AxcAE_TabBarItemLayoutStyle itemLayoutStyle;
+// titleLabel大小 有默认值
+@property(nonatomic, assign)CGSize titleLabelSize;
+// icomImgView大小 有默认值
+@property(nonatomic, assign)CGSize icomImgViewSize;
+// 所有组件距离item边距 默认 UIEdgeInsetsMake(5, 5, 10, 5)
+@property(nonatomic, assign)UIEdgeInsets componentMargin;
+// 图片文字的间距 默认 2
+@property(nonatomic, assign)CGFloat pictureWordsMargin;
+
+#pragma mark - item交互控制类
+// 点击触发后的交互效果
+@property(nonatomic, assign)AxcAE_TabBarInteractionEffectStyle interactionEffectStyle;
+// 是否允许重复点击触发动画 默认NO
+@property(nonatomic, assign)BOOL isRepeatClick;
+// 当交互效果选选择自定义时,会回调以下Block
+@property(nonatomic, copy)CustomInteractionEffectBlock customInteractionEffectBlock;
+// 多个自定义时候使用区分的Tag
+@property(nonatomic, assign)NSInteger tag;
+
+@end
+
+
+
+
+
+@interface AxcAE_TabBarItem : UIControl
+
+// 构造
+- (instancetype)initWithModel:(AxcAE_TabBarConfigModel *)itemModel;
+
+// 标题
+@property (nonatomic, copy) NSString *title;
+// 默认标题颜色
+@property (nonatomic, strong) UIColor *normalColor;
+// 选中标题颜色
+@property (nonatomic, strong) UIColor *selectColor;
+// 默认的 Image
+@property (nonatomic, strong) UIImage *normalImage;
+// 选中的 Image
+@property (nonatomic, strong) UIImage *selectImage;
+// 默认的 图片tintColor
+@property(nonatomic, strong)UIColor *normalTintColor;
+// 选中的 图片tintColor
+@property(nonatomic, strong)UIColor *selectTintColor;
+// 默认的 按钮背景Color 默认无
+@property(nonatomic, strong)UIColor *normalBackgroundColor;
+// 选中的 按钮背景Color 默认无
+@property(nonatomic, strong)UIColor *selectBackgroundColor;
+// 单个item的背景图
+@property(nonatomic, strong)UIImageView *backgroundImageView;
+// 角标内容
+@property(nonatomic, strong)NSString *badge;
+// item的所在索引
+@property(nonatomic, assign)NSInteger itemIndex;
+
+// 选中状态
+@property (nonatomic, assign) BOOL isSelect;
+// imageView
+@property (nonatomic, strong) UIImageView *icomImgView;
+// 标题Label
+@property (nonatomic, strong) UILabel *titleLabel;
+// 角标Label
+@property(nonatomic, strong)AxcAE_TabBarBadge *badgeLabel;
+
+// 模型构造器
+@property(nonatomic, strong)AxcAE_TabBarConfigModel *itemModel;
+// 重新开始布局
+- (void)itemDidLayoutControl;
+// 开始执行设置的动画
+- (void)startStrringConfigAnimation;
+
+@end

+ 329 - 0
创维盒子/Pods/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarItem.m

@@ -0,0 +1,329 @@
+//
+//  AxcAE_TabBarItem.m
+//  Axc_AEUI
+//
+//  Created by Axc on 2018/6/2.
+//  Copyright © 2018年 AxcLogo. All rights reserved.
+//
+
+#import "AxcAE_TabBarItem.h"
+
+@implementation AxcAE_TabBarItem
+
+#pragma mark - 构造
+- (instancetype)init{
+    self = [super init];
+    if (self) {
+        [self configuration];
+    }
+    return self;
+}
+- (instancetype)initWithCoder:(NSCoder *)coder{
+    self = [super initWithCoder:coder];
+    if (self) {
+        [self configuration];
+    }
+    return self;
+}
+- (instancetype)initWithFrame:(CGRect)frame{
+    self = [super initWithFrame:frame];
+    if (self) {
+        [self configuration];
+    }
+    return self;
+}
+- (instancetype)initWithModel:(AxcAE_TabBarConfigModel *)itemModel{
+    self = [super init];
+    if (self) {
+        [self configuration];
+        [self setItemModel:itemModel];
+    }
+    return self;
+}
+- (void)layoutSubviews{
+    [super layoutSubviews];
+    [self itemDidLayoutControl]; // 进行组件布局 (因为需要封装,所以没打算在第一时间进行布局)
+    [self itemDidLayoutBadgeLabel]; // 进行脚标布局
+}
+////////
+#pragma mark - 配置实例
+- (void)configuration{
+
+}
+- (void)itemDidLayoutBadgeLabel{
+    switch (self.itemModel.itemBadgeStyle) {
+        case AxcAE_TabBarItemBadgeStyleTopRight:{   // 右上方 默认
+            self.badgeLabel.center = CGPointMake(self.frame.size.width - (self.badgeLabel.frame.size.width/2),self.badgeLabel.frame.size.height/2 );
+        }break;
+        case AxcAE_TabBarItemBadgeStyleTopCenter:{      // 上中间
+            self.badgeLabel.center = CGPointMake(self.frame.size.width/2,self.badgeLabel.frame.size.height/2 );
+        }break;
+        case AxcAE_TabBarItemBadgeStyleTopLeft:{         // 左上方
+            self.badgeLabel.center = CGPointMake((self.badgeLabel.frame.size.width/2),self.badgeLabel.frame.size.height/2 );
+        }break;
+        default: break;
+    }
+}
+
+#define iconImgView_Proportion (2.0/3.0)
+#define titleLabel_Proportion (1.0/3.0)
+- (void)itemDidLayoutControl{
+    // 开始内部布局
+    self.backgroundImageView.frame = self.bounds;
+    CGRect iconImgFrame = self.icomImgView.frame;
+    CGRect titleFrame = self.titleLabel.frame;
+    BOOL isIcomImgViewSize = self.itemModel.icomImgViewSize.width || self.itemModel.icomImgViewSize.height;
+    BOOL isTitleLabelSize = self.itemModel.titleLabelSize.width || self.itemModel.titleLabelSize.height;
+    // 除去边距后的最大宽度
+    CGFloat marginWidth = self.frame.size.width - self.itemModel.componentMargin.left - self.itemModel.componentMargin.right;
+    // 进行决策设置大小
+    if (isIcomImgViewSize){
+        iconImgFrame.size = self.itemModel.icomImgViewSize;
+    }else{
+        iconImgFrame.size = CGSizeMake(marginWidth, self.frame.size.height * iconImgView_Proportion - self.itemModel.componentMargin.top - 5);
+    }
+    if (isTitleLabelSize){
+        titleFrame.size = self.itemModel.titleLabelSize;
+    }else{
+        titleFrame.size = CGSizeMake(marginWidth, self.frame.size.height - iconImgFrame.size.height - self.itemModel.componentMargin.bottom);
+    }
+    // 至此大小已计算完毕,开始布局
+    self.titleLabel.hidden = NO;
+    self.icomImgView.hidden = NO;
+    switch (self.itemModel.itemLayoutStyle) {
+        case AxcAE_TabBarItemLayoutStyleTopPictureBottomTitle:{         // 上图片下文字 使用图3 文1比
+            iconImgFrame.origin.y = self.itemModel.componentMargin.top;
+            iconImgFrame.origin.x = (self.frame.size.width - iconImgFrame.size.width)/2;
+            // 图上文下 文label的高度要减去间距
+            titleFrame.size.height -= self.itemModel.pictureWordsMargin;
+            titleFrame.origin.y = iconImgFrame.origin.y + iconImgFrame.size.height + self.itemModel.pictureWordsMargin;
+            titleFrame.origin.x = (self.frame.size.width - titleFrame.size.width)/2;
+        }break;
+        case AxcAE_TabBarItemLayoutStyleBottomPictureTopTitle:{         // 下图片上文字
+            titleFrame.origin.y = self.itemModel.componentMargin.top;
+            titleFrame.origin.x = (self.frame.size.width - iconImgFrame.size.width)/2;
+            titleFrame.size.height = self.frame.size.height * iconImgView_Proportion - self.itemModel.componentMargin.top - self.itemModel.pictureWordsMargin - 5;
+            // 下图片上文字 图的高度要减去间距
+            iconImgFrame.origin.y = titleFrame.origin.y + titleFrame.size.height + self.itemModel.pictureWordsMargin;
+            iconImgFrame.origin.x = self.itemModel.componentMargin.left;
+            iconImgFrame.size = CGSizeMake(marginWidth, self.frame.size.height -
+                                           titleFrame.size.height - titleFrame.origin.y - self.itemModel.componentMargin.bottom - self.itemModel.pictureWordsMargin);
+        }break;
+        case AxcAE_TabBarItemLayoutStyleLeftPictureRightTitle:{         // 左图片右文字
+            // 左右布局要重新计算图片宽度和文本高度 比例要按照相反的1:3计算
+            iconImgFrame.size.width = self.frame.size.width * titleLabel_Proportion ;
+            titleFrame.size.height = self.frame.size.height - self.itemModel.componentMargin.top - self.itemModel.componentMargin.bottom;
+            titleFrame.size.width = self.frame.size.width - // 图片的右下终点坐标 + 边距 + 组件右边距极限
+            (iconImgFrame.size.width + iconImgFrame.origin.x + self.itemModel.pictureWordsMargin + self.itemModel.componentMargin.right);
+            
+            iconImgFrame.origin.y = (self.frame.size.height - iconImgFrame.size.height)/2;
+            iconImgFrame.origin.x = self.itemModel.componentMargin.left;
+            // 左图片右文字 文label的宽度要减去间距
+            titleFrame.size.width -= self.itemModel.pictureWordsMargin;
+            titleFrame.origin.y = self.itemModel.componentMargin.top;
+            titleFrame.origin.x = iconImgFrame.size.width + iconImgFrame.origin.x + self.itemModel.pictureWordsMargin;
+        }break;
+        case AxcAE_TabBarItemLayoutStyleRightPictureLeftTitle:{         // 右图片左文字
+            // 左右布局要重新计算图片宽度和文本高度 比例要按照相反的1:3计算
+            iconImgFrame.size.width = self.frame.size.width * titleLabel_Proportion ;
+            titleFrame.size.height = self.frame.size.height - self.itemModel.componentMargin.top - self.itemModel.componentMargin.bottom;
+            titleFrame.size.width = self.frame.size.width - // 图片的右下终点坐标 + 边距 + 组件右边距极限
+            (iconImgFrame.size.width  + self.itemModel.pictureWordsMargin + self.itemModel.componentMargin.right);
+            
+            titleFrame.origin.x = self.itemModel.componentMargin.left;
+            // 左图片右文字 文label的宽度要减去间距
+            titleFrame.size.width -= self.itemModel.pictureWordsMargin;
+            titleFrame.origin.y = self.itemModel.componentMargin.top;
+            
+            iconImgFrame.origin.y = (self.frame.size.height - iconImgFrame.size.height)/2;
+            iconImgFrame.origin.x = titleFrame.size.width + titleFrame.origin.x + self.itemModel.pictureWordsMargin;
+        }break;
+        case AxcAE_TabBarItemLayoutStylePicture:{                       // 单图片占满全部
+            iconImgFrame.size = CGSizeMake(self.frame.size.width - self.itemModel.componentMargin.left - self.itemModel.componentMargin.right,
+                                           self.frame.size.height - self.itemModel.componentMargin.top - self.itemModel.componentMargin.bottom);
+            iconImgFrame.origin = CGPointMake(self.itemModel.componentMargin.right, self.itemModel.componentMargin.top);
+            self.titleLabel.hidden = YES;
+        }break;
+        case AxcAE_TabBarItemLayoutStyleTitle:{                         // 单标题占满全部
+            titleFrame.size = CGSizeMake(self.frame.size.width - self.itemModel.componentMargin.left - self.itemModel.componentMargin.right,
+                                           self.frame.size.height - self.itemModel.componentMargin.top - self.itemModel.componentMargin.bottom);
+            titleFrame.origin = CGPointMake(self.itemModel.componentMargin.right, self.itemModel.componentMargin.top);
+            self.icomImgView.hidden = YES;
+        }break;
+        default:  break;
+    }
+    self.icomImgView.frame = iconImgFrame;
+    self.titleLabel.frame = titleFrame;
+}
+#pragma mark - 动画函数
+- (void)startStrringConfigAnimation{
+    WeakSelf;//添加动画
+    CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
+    switch (self.itemModel.interactionEffectStyle) {
+        case AxcAE_TabBarInteractionEffectStyleNone:{ // 无
+        }break;
+        case AxcAE_TabBarInteractionEffectStyleSpring:{ // 放大放小
+            animation.keyPath = @"transform.scale";
+            animation.values = @[@1.0,@1.3,@0.9,@1.15,@0.95,@1.02,@1.0];
+            animation.duration = 0.6;
+            animation.calculationMode = kCAAnimationCubic;
+            
+        }break;
+        case AxcAE_TabBarInteractionEffectStyleShake:{ // 摇动
+            animation.keyPath = @"transform.rotation";
+            CGFloat angle = M_PI_4 / 10;
+            animation.values = @[@(-angle), @(angle), @(-angle)];
+            animation.duration = 0.2f;
+        }break;
+        case AxcAE_TabBarInteractionEffectStyleAlpha:{ // 透明
+            animation.keyPath = @"opacity";
+            animation.values = @[@1.0,@0.7,@0.5,@0.7,@1.0];
+            animation.duration = 0.6;
+        }break;
+        case AxcAE_TabBarInteractionEffectStyleCustom:{ // 自定义动画
+            if (weakSelf.itemModel.customInteractionEffectBlock) {
+                weakSelf.itemModel.customInteractionEffectBlock(weakSelf);
+            }
+        }break;
+        default: break;
+    }
+    [self.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull view, NSUInteger idx, BOOL * _Nonnull stop) {
+        [view.layer addAnimation:animation forKey:nil];
+    }];
+}
+
+#pragma mark - SET/GET
+- (void)setItemModel:(AxcAE_TabBarConfigModel *)itemModel{
+    _itemModel = itemModel;
+    self.backgroundImageView = itemModel.backgroundImageView; // 先添加背景
+    self.title = _itemModel.itemTitle;
+    self.normalImage = [UIImage imageNamed:_itemModel.normalImageName];
+    self.selectImage = [UIImage imageNamed:_itemModel.selectImageName];
+    self.normalColor = _itemModel.normalColor;
+    self.selectColor = _itemModel.selectColor;
+    self.normalTintColor = _itemModel.normalTintColor;
+    self.selectTintColor = _itemModel.selectTintColor;
+    self.normalBackgroundColor = _itemModel.normalBackgroundColor;
+    self.selectBackgroundColor = _itemModel.selectBackgroundColor;
+    self.titleLabel = _itemModel.titleLabel;
+    self.icomImgView = _itemModel.icomImgView;
+    CGRect itemFrame = self.frame;
+    itemFrame.size = _itemModel.itemSize;
+    self.badgeLabel.automaticHidden = _itemModel.automaticHidden;
+    self.frame = itemFrame;
+    self.badge = _itemModel.badge;
+}
+- (void)setIsSelect:(BOOL)isSelect{
+    _isSelect = isSelect;
+    if (_isSelect) { // 是选中
+        self.icomImgView.image = self.selectImage;
+        self.titleLabel.textColor = self.selectColor;
+        // 如果有设置tintColor,那么就选中图片后将图片渲染成TintColor
+        if (self.selectTintColor) {
+            self.icomImgView.image = [self.icomImgView.image imageWithRenderingMode:(UIImageRenderingModeAlwaysTemplate)];
+            [self.icomImgView setTintColor:self.selectTintColor];
+        }
+        [UIView animateWithDuration:0.3 animations:^{
+            if (self.selectBackgroundColor) {
+                self.backgroundColor = self.selectBackgroundColor;
+            }else{
+                self.backgroundColor = [UIColor clearColor];
+            }
+        }];
+    }else{
+        self.icomImgView.image = self.normalImage;
+        self.titleLabel.textColor = self.normalColor;
+        // 如果有设置tintColor,那么未选中将图片渲染成TintColor
+        if (self.normalTintColor) {
+            self.icomImgView.image = [self.icomImgView.image imageWithRenderingMode:(UIImageRenderingModeAlwaysTemplate)];
+            [self.icomImgView setTintColor:self.normalTintColor];
+        }
+        [UIView animateWithDuration:0.3 animations:^{
+            if (self.normalBackgroundColor) {
+                self.backgroundColor = self.normalBackgroundColor;
+            }else{
+                self.backgroundColor = [UIColor clearColor];
+            }
+        }];
+    }
+    self.titleLabel.text = self.title;
+}
+- (void)setIcomImgView:(UIImageView *)icomImgView{
+    _icomImgView = icomImgView;
+    [self addSubview:_icomImgView];
+    self.isSelect = self.isSelect;
+}
+- (void)setTitleLabel:(UILabel *)titleLabel{
+    _titleLabel = titleLabel;
+    [self addSubview:_titleLabel];
+}
+- (void)setBackgroundImageView:(UIImageView *)backgroundImageView{
+    _backgroundImageView = backgroundImageView;
+    [self addSubview:_backgroundImageView];
+}
+- (void)setBadge:(NSString *)badge{
+    _badge = badge;
+    if (_badge) {
+        self.badgeLabel.badgeText = _badge;
+        [self itemDidLayoutBadgeLabel]; // 布局Badge
+    }
+}
+
+#pragma mark - 懒加载
+- (AxcAE_TabBarBadge *)badgeLabel{
+    if (!_badgeLabel) {
+        _badgeLabel = [AxcAE_TabBarBadge new];
+        [self addSubview:_badgeLabel];
+    }
+    return _badgeLabel;
+}
+
+
+@end
+
+
+
+
+@implementation AxcAE_TabBarConfigModel
+
+- (instancetype)init{
+    self = [super init];
+    if (self) { // 设置初始默认值
+        // 默认标题正常颜色
+        self.normalColor = [UIColor grayColor];
+        // 默认选中标题颜色
+        self.selectColor = AxcAE_TabBarItemSlectBlue;
+        // 默认凸出 20
+        self.bulgeHeight = 20.0;
+        self.pictureWordsMargin = 5.0;
+        self.componentMargin = UIEdgeInsetsMake(5, 5, 5, 5);
+        self.isRepeatClick = NO;
+    }
+    return self;
+}
+
+#pragma mark - 懒加载
+- (UILabel *)titleLabel{
+    if (!_titleLabel) {
+        _titleLabel = [UILabel new];
+        _titleLabel.font = [UIFont systemFontOfSize:10];
+        _titleLabel.textAlignment = NSTextAlignmentCenter;
+        _titleLabel.numberOfLines = 0;
+    }
+    return _titleLabel;
+}
+- (UIImageView *)icomImgView{
+    if (!_icomImgView) {
+        _icomImgView = [UIImageView new];
+        _icomImgView.contentMode = UIViewContentModeScaleAspectFit;
+    }
+    return _icomImgView;
+}
+- (UIImageView *)backgroundImageView{
+    if (!_backgroundImageView) {
+        _backgroundImageView = [UIImageView new];
+    }
+    return _backgroundImageView;
+}
+
+@end

+ 21 - 0
创维盒子/Pods/AxcAE_TabBar/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 AxcLogo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 124 - 0
创维盒子/Pods/AxcAE_TabBar/README.md

@@ -0,0 +1,124 @@
+# AxcAE_TabBar
+![language](https://img.shields.io/badge/Language-Objective--C-8E44AD.svg)
+![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)
+![MIT License](https://img.shields.io/github/license/mashape/apistatus.svg)
+![Platform](https://img.shields.io/badge/platform-%20iOS%20-lightgrey.svg)
+![CocoaPods](https://img.shields.io/badge/CocoaPods-1.5.2-brightgreen.svg)
+![Axc](https://img.shields.io/badge/Axc-AEKit-orange.svg)
+
+![AxcAE_TabBar](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/AxcAE_TabBarTitle.png)<br>
+
+### 简介:
+AxcAE_TabBar,以开放为封装核心的TabBar组件,尽量将属性、API等参数全部开放给使用者去自定义,能够方便快速使用的一个TabBar选项卡组件<br>
+
+### 框架支持
+最低支持:iOS 8.0 
+
+IDE:Xcode 9.0 及以上版本 (由于适配iPhone X使用iOS11api,所以请使用Xcode 9.0及以上版本)
+
+### <a id="使用方法"></a>使用/安装
+
+* 第一种:手动  
+  * 1.找到包含:</br>
+   `AxcAE_TabBar.h.m`、</br>
+   `AxcAE_TabBarBadge.h.m`、</br>
+   `AxcAE_TabBarItem.h.m`、</br>
+   `AxcAE_TabBarDefine.h`</br>
+  的`AxcAE_TabBar`文件夹;</br>
+  * 2.直接把`AxcAE_TabBar`文件夹拖入到您的工程中;
+  * 3.导入 `"AxcAE_TabBar.h"`
+* 第二种:Cocoapods
+  * 1.在Podfile 中添加 `pod 'AxcAE_TabBar'`
+  * 2.执行 `pod setup`
+  * 3.执行 `pod install` 或 `pod update`
+  * 4.导入 `#import <AxcAE_TabBar/AxcAE_TabBar.h>`
+
+### <a id="功能介绍"></a>功能介绍
+- [x] 支持横竖屏 (已适配iPhone X)
+- [x] 支持自定义Item背景图 
+- [x] 支持自定义Item图标的自定义渲染颜色(tingColor,某种情况再不需要两套TabBar图标啦)
+- [x] 支持自定义Item的触发动画(预设有弹簧、放大缩小、渐变)
+- [x] 支持自定义Item的内部布局
+- [x] 支持自定义Item的内部组件(组件全开放指针,可以直接外部操作属性,如创建之初就能定义个别Item的字体等)
+- [x] 支持自定义Item的内部组件大小
+- [x] 支持自定义Item的内部组件的相关属性(点语法可能会有点长,比如item.iconImageView.ContentMode = ...)
+- [x] 支持自定义TabBar的背景图
+- [x] 支持自定义TabBar的背景图的模糊毛玻璃遮罩
+- [x] 支持自定义TabBar上Item相对在各自单元格内的排布方式以及对齐方式
+- [x] 支持自定义TabBar上Item小气泡(徽标)的左中右排布
+- [x] 支持自定义TabBar的凸起按钮
+- [x] 支持自定义TabBar的凸起按钮触发事件,包括能切换视图
+- [x] 支持自定义TabBar的凸起按钮的位置,只要你想,凸起按钮也可以不一定在中间
+- [x] 支持自定义TabBar的多重凸起按钮,如果遇到奇葩多个凸起按钮的需求,别慌
+- [x] 支持自定义TabBar的多重复合凸起按钮,有圆有方怎么办,循环遍历特殊对待(还能再奇葩么)
+- [x] 支持自定义TabBar的Item自定义大小等
+- [x] 支持TabBar中控制器可获取对应Item的方式
+- [x] 支持TabBar与系统TabBar隐藏的同步
+- [x] 支持TabBar在Push的时候与系统同步Hidden的效果(因为父视图就是系统的TabBar)
+<!-- - [x] 3D Touch快捷菜单 -->
+- [x] 支持并不依赖其他三方库,适配由自行计算Frame
+
+
+
+### 意见
+
+> 如果您在使用中有好的需求及建议,或者遇到什么bug,欢迎随时issue,我会及时的回复
+ 
+# 预览
+![主示例图](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/Main%20screen%20shot.png)
+## 示例内容部分
+![所有示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_0.gif)
+## 模仿部分主流app的TabBar设置
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_1.gif)
+## 带背景图+选中后背景颜色
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_2.gif)
+## 背景图片+模糊毛玻璃
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_3.gif)
+## 中间圆形凸起
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_4.gif)
+## 多重圆形凸起
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_5.gif)
+## 中间矩形凸起
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_6.gif)
+## 多重混合凸起
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_7.gif)
+## 按钮自定义大小
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_8.gif)
+## 按钮相对在TabBar单元格中的上、左、右、下、左上、右上、左下、右下布局
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_9.gif)
+## 按钮内部 文上图下、图左文右、文左图右、全图、全文模式
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_10.gif)
+## 徽标居上左中右排布模式
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_11.gif)
+## 按钮独立点击动画特效设置
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_12.gif)
+## 按钮独立选中颜色设置
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_13.gif)
+## 按钮独立选中背景颜色设置
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_14.gif)
+## 按钮独立背景图片设置
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_15.gif)
+## 与渐变色三方库混合使用,背景动态渐变
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_16.gif)
+## 背景从上到下黑到灰渐变
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_17.gif)
+## 背景从上到下渐变2
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_18.gif)
+## 背景从左到右红到橘渐变 + 按钮独立选中背景色
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_19.gif)
+## 背景从左下到右上渐变
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_20.gif)
+## 背景渐变+按钮独立渐变
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_21.gif)
+## 仿微博Tabbar
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_22.gif)
+## 仿咸鱼TabBar
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_23.gif)
+## 仿简书TabBar
+![示例](https://github.com/axclogo/AxcAE_TabBar/blob/master/Images/sample_24.gif)
+## 按钮其他常用测试
+
+### 更新日志
+● 1.0.0: 重新适配iPhoneX,以及部分坐标计算出现的错误; </br>
+● 1.0.3: 修复重设VC的Title时,文字出现重影,原因是系统的item遮挡造成; </br>
+

+ 1 - 0
创维盒子/Pods/Headers/Private/AxcAE_TabBar/AxcAE_TabBar.h

@@ -0,0 +1 @@
+../../../AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar.h

+ 1 - 0
创维盒子/Pods/Headers/Private/AxcAE_TabBar/AxcAE_TabBarBadge.h

@@ -0,0 +1 @@
+../../../AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarBadge.h

+ 1 - 0
创维盒子/Pods/Headers/Private/AxcAE_TabBar/AxcAE_TabBarDefine.h

@@ -0,0 +1 @@
+../../../AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarDefine.h

+ 1 - 0
创维盒子/Pods/Headers/Private/AxcAE_TabBar/AxcAE_TabBarItem.h

@@ -0,0 +1 @@
+../../../AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarItem.h

+ 1 - 0
创维盒子/Pods/Headers/Public/AxcAE_TabBar/AxcAE_TabBar.h

@@ -0,0 +1 @@
+../../../AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar.h

+ 1 - 0
创维盒子/Pods/Headers/Public/AxcAE_TabBar/AxcAE_TabBarBadge.h

@@ -0,0 +1 @@
+../../../AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarBadge.h

+ 1 - 0
创维盒子/Pods/Headers/Public/AxcAE_TabBar/AxcAE_TabBarDefine.h

@@ -0,0 +1 @@
+../../../AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarDefine.h

+ 1 - 0
创维盒子/Pods/Headers/Public/AxcAE_TabBar/AxcAE_TabBarItem.h

@@ -0,0 +1 @@
+../../../AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBar/AxcAE_TabBarItem.h

+ 5 - 1
创维盒子/Pods/Manifest.lock

@@ -14,6 +14,7 @@ PODS:
   - AFNetworking/Serialization (4.0.1)
   - AFNetworking/UIKit (4.0.1):
     - AFNetworking/NSURLSession
+  - AxcAE_TabBar (1.0.5)
   - Bugly (2.5.91)
   - CocoaAsyncSocket (7.6.5)
   - HUPhotoBrowser (1.4.5):
@@ -60,6 +61,7 @@ PODS:
 
 DEPENDENCIES:
   - AFNetworking
+  - AxcAE_TabBar
   - Bugly
   - CocoaAsyncSocket
   - HUPhotoBrowser
@@ -79,6 +81,7 @@ DEPENDENCIES:
 SPEC REPOS:
   trunk:
     - AFNetworking
+    - AxcAE_TabBar
     - Bugly
     - CocoaAsyncSocket
     - HUPhotoBrowser
@@ -102,6 +105,7 @@ EXTERNAL SOURCES:
 
 SPEC CHECKSUMS:
   AFNetworking: 7864c38297c79aaca1500c33288e429c3451fdce
+  AxcAE_TabBar: 1d5bcf6c4921889dc38839b6ba2c584a9b55251a
   Bugly: afe841bba2ea6de6d432a3c125240a5e75949c55
   CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
   HUPhotoBrowser: 87a8333c111a4e71ebf5400bf66d0eeb522c0098
@@ -120,6 +124,6 @@ SPEC CHECKSUMS:
   WechatOpenSDK: 290989072e87b79d52225a01bb4e5e58f6f88593
   YCDownloadSession: a95e2449c6d01af8ba0d5977ce79a9f596f4245d
 
-PODFILE CHECKSUM: 40eefe9c28218c56e2841a152219087225f08167
+PODFILE CHECKSUM: e4e993bd8041230e4379591dd645326985e8fad8
 
 COCOAPODS: 1.11.3

File diff suppressed because it is too large
+ 2882 - 2689
创维盒子/Pods/Pods.xcodeproj/project.pbxproj


+ 58 - 0
创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/AxcAE_TabBar.xcscheme

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1240"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "236D0799788605C2A2A71BD0A2860B8A"
+               BuildableName = "libAxcAE_TabBar.a"
+               BlueprintName = "AxcAE_TabBar"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 5 - 0
创维盒子/Pods/Pods.xcodeproj/xcuserdata/xdh.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -9,6 +9,11 @@
 			<key>isShown</key>
 			<false/>
 		</dict>
+		<key>AxcAE_TabBar.xcscheme</key>
+		<dict>
+			<key>isShown</key>
+			<false/>
+		</dict>
 		<key>Bugly.xcscheme</key>
 		<dict>
 			<key>isShown</key>

+ 5 - 0
创维盒子/Pods/Target Support Files/AxcAE_TabBar/AxcAE_TabBar-dummy.m

@@ -0,0 +1,5 @@
+#import <Foundation/Foundation.h>
+@interface PodsDummy_AxcAE_TabBar : NSObject
+@end
+@implementation PodsDummy_AxcAE_TabBar
+@end

+ 12 - 0
创维盒子/Pods/Target Support Files/AxcAE_TabBar/AxcAE_TabBar-prefix.pch

@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+

+ 12 - 0
创维盒子/Pods/Target Support Files/AxcAE_TabBar/AxcAE_TabBar.debug.xcconfig

@@ -0,0 +1,12 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AxcAE_TabBar
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AxcAE_TabBar" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AxcAE_TabBar"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/AxcAE_TabBar
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

+ 12 - 0
创维盒子/Pods/Target Support Files/AxcAE_TabBar/AxcAE_TabBar.release.xcconfig

@@ -0,0 +1,12 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/AxcAE_TabBar
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AxcAE_TabBar" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AxcAE_TabBar"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/AxcAE_TabBar
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

File diff suppressed because it is too large
+ 1 - 1
创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.debug.xcconfig


File diff suppressed because it is too large
+ 1 - 1
创维盒子/Pods/Target Support Files/Pods-双子星云手机Tests/Pods-双子星云手机Tests.release.xcconfig


+ 25 - 0
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.markdown

@@ -24,6 +24,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 
 
+## AxcAE_TabBar
+
+MIT License
+
+Copyright (c) 2018 AxcLogo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
 ## Bugly
 
 Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved.

+ 31 - 0
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器-acknowledgements.plist

@@ -43,6 +43,37 @@ THE SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>MIT License
+
+Copyright (c) 2018 AxcLogo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+</string>
+			<key>License</key>
+			<string>MIT</string>
+			<key>Title</key>
+			<string>AxcAE_TabBar</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved.
 </string>
 			<key>License</key>

File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.debug.xcconfig


File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-计算器/Pods-计算器.release.xcconfig


+ 25 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.markdown

@@ -24,6 +24,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 
 
+## AxcAE_TabBar
+
+MIT License
+
+Copyright (c) 2018 AxcLogo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
 ## Bugly
 
 Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved.

+ 31 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests-acknowledgements.plist

@@ -43,6 +43,37 @@ THE SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>MIT License
+
+Copyright (c) 2018 AxcLogo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+</string>
+			<key>License</key>
+			<string>MIT</string>
+			<key>Title</key>
+			<string>AxcAE_TabBar</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved.
 </string>
 			<key>License</key>

File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.debug.xcconfig


File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护-双子星云手机UITests/Pods-隐私保护-双子星云手机UITests.release.xcconfig


+ 25 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.markdown

@@ -24,6 +24,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 
 
+## AxcAE_TabBar
+
+MIT License
+
+Copyright (c) 2018 AxcLogo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
 ## Bugly
 
 Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved.

+ 31 - 0
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护-acknowledgements.plist

@@ -43,6 +43,37 @@ THE SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>MIT License
+
+Copyright (c) 2018 AxcLogo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+</string>
+			<key>License</key>
+			<string>MIT</string>
+			<key>Title</key>
+			<string>AxcAE_TabBar</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved.
 </string>
 			<key>License</key>

File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.debug.xcconfig


File diff suppressed because it is too large
+ 3 - 3
创维盒子/Pods/Target Support Files/Pods-隐私保护/Pods-隐私保护.release.xcconfig