小说绘上架版本
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// TFTabbarViewHelper.h
|
||||
// WXReader
|
||||
//
|
||||
// Created by 谢腾飞 on 2020/12/1.
|
||||
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "CYLTabBarController.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface TFTabbarViewHelper : NSObject
|
||||
|
||||
@property (nonatomic ,strong ,readonly) CYLTabBarController *tabBarController;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,215 @@
|
||||
//
|
||||
// TFTabbarViewHelper.m
|
||||
// WXReader
|
||||
//
|
||||
// Created by 谢腾飞 on 2020/12/1.
|
||||
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TFTabbarViewHelper.h"
|
||||
#import "TFBookRackViewController.h"
|
||||
#import "TFBookStoreViewController.h"
|
||||
#import "TFDiscoverViewController.h"
|
||||
#import "TFMineViewController.h"
|
||||
|
||||
@interface TFTabbarViewHelper () <UITabBarControllerDelegate>
|
||||
|
||||
@property (nonatomic ,strong ,readwrite) CYLTabBarController *tabBarController;
|
||||
|
||||
@end
|
||||
|
||||
@implementation TFTabbarViewHelper
|
||||
|
||||
- (instancetype)init
|
||||
{
|
||||
if (self = [super init]) {
|
||||
// 隐藏tabbar
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hiddenTabbar:) name:Notification_Hidden_Tabbar object:nil];
|
||||
|
||||
// 显示tabbar
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showTabbar:) name:Notification_Show_Tabbar object:nil];
|
||||
|
||||
// 改变审核状态
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeMagicState:) name:Notification_Review_State object:nil];
|
||||
|
||||
// 改变tabbar选项卡
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changTabbarIndex:) name:Notification_Change_Tabbar_Index object:nil];
|
||||
|
||||
// 切换语言状态
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(switchLanguage) name:Notification_Switch_Language object:nil];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (CYLTabBarController *)tabBarController
|
||||
{
|
||||
if (!_tabBarController) {
|
||||
CYLTabBarController *tabBarController = nil;
|
||||
|
||||
if (@available(iOS 13.0, *)) {
|
||||
tabBarController = [CYLTabBarController tabBarControllerWithViewControllers:self.viewControllers tabBarItemsAttributes:self.tabBarItemsAttributesForController imageInsets:UIEdgeInsetsMake(1, 0, 1, 0) titlePositionAdjustment:UIOffsetMake(0, -3)];
|
||||
[[UITabBar appearance] setUnselectedItemTintColor:kColorRGBA(217, 217, 217, 1)];
|
||||
[[UITabBar appearance] setTintColor:kMainColor];
|
||||
|
||||
} else {
|
||||
tabBarController = [CYLTabBarController tabBarControllerWithViewControllers:self.viewControllers tabBarItemsAttributes:self.tabBarItemsAttributesForController imageInsets:UIEdgeInsetsMake(0, 0, 0, 0) titlePositionAdjustment:UIOffsetMake(0, -3)];
|
||||
[[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:kMainColor} forState:UIControlStateSelected];
|
||||
[[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:kColorRGBA(217, 217, 217, 1)} forState:UIControlStateNormal];
|
||||
}
|
||||
|
||||
tabBarController.tabBarHeight = PUB_TABBAR_HEIGHT;
|
||||
tabBarController.tabBar.translucent = YES;
|
||||
tabBarController.delegate = self;
|
||||
tabBarController.tabBar.clipsToBounds = YES;
|
||||
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
|
||||
[[UITabBar appearance] setBackgroundImage:[TFViewHelper scaleImage:[UIImage imageNamed:@"tabbar_background"] toScale:1]];
|
||||
|
||||
if (![[NSUserDefaults standardUserDefaults] objectForKey:TF_TABBAR_SELECT_MEMORY]) {
|
||||
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInteger:1] forKey:TF_TABBAR_SELECT_MEMORY];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
}
|
||||
|
||||
NSNumber *selectIndex = [[NSUserDefaults standardUserDefaults] objectForKey:TF_TABBAR_SELECT_MEMORY];
|
||||
tabBarController.selectedIndex = [selectIndex integerValue];
|
||||
|
||||
_tabBarController = tabBarController;
|
||||
}
|
||||
return _tabBarController;
|
||||
}
|
||||
|
||||
- (NSArray *)tabBarItemsAttributesForController
|
||||
{
|
||||
NSMutableArray *tabbarItems = [NSMutableArray array];
|
||||
|
||||
for (int i = 0; i < self.titleArr.count; i ++) {
|
||||
[tabbarItems addObject:@{
|
||||
CYLTabBarItemTitle : self.titleArr[i],
|
||||
CYLTabBarItemImage : self.itemImageArr[i],
|
||||
CYLTabBarItemSelectedImage : self.itemImageSelectedArr[i],
|
||||
}];
|
||||
}
|
||||
|
||||
NSArray *tabBarItemsAttributes = [tabbarItems copy];
|
||||
return tabBarItemsAttributes;
|
||||
}
|
||||
|
||||
- (NSArray *)titleArr
|
||||
{
|
||||
return @[TFLocalizedString(@"书架"), TFLocalizedString(@"书城"), TFLocalizedString(@"发现"), TFLocalizedString(@"我的")];
|
||||
}
|
||||
|
||||
- (NSArray *)itemImageArr
|
||||
{
|
||||
return @[@"bookRack", @"bookMall", @"discover", @"mine"];
|
||||
}
|
||||
|
||||
- (NSArray *)itemImageSelectedArr
|
||||
{
|
||||
return @[@"bookRack_select", @"bookMall_select", @"discover_select", @"mine_select"];
|
||||
}
|
||||
|
||||
- (NSArray *)viewControllers
|
||||
{
|
||||
NSArray *t_viewControllers;
|
||||
|
||||
TFBookRackViewController *bookRackViewController = [[TFBookRackViewController alloc] init];
|
||||
TFBookStoreViewController *bookMallViewController = [[TFBookStoreViewController alloc] init];
|
||||
TFDiscoverViewController *discoverViewController = [[TFDiscoverViewController alloc] init];
|
||||
TFMineViewController *mineViewController = [[TFMineViewController alloc] init];
|
||||
|
||||
t_viewControllers = @[bookRackViewController, bookMallViewController, discoverViewController, mineViewController];
|
||||
|
||||
NSMutableArray *t_navigationControllers = [NSMutableArray array];
|
||||
|
||||
for (UIViewController *t_viewController in t_viewControllers) {
|
||||
|
||||
UINavigationController *t_navigationController = [[TFNavigationController alloc] initWithRootViewController:t_viewController];
|
||||
[t_navigationControllers addObject:t_navigationController];
|
||||
}
|
||||
|
||||
return [t_navigationControllers copy];
|
||||
}
|
||||
|
||||
- (void)tabBarController:(UITabBarController *)tabBarController didSelectControl:(UIControl *)control
|
||||
{
|
||||
[UIApplication sharedApplication].statusBarHidden = NO;
|
||||
|
||||
[self saveTabbarSelectedIndex:tabBarController.selectedIndex];
|
||||
}
|
||||
|
||||
- (void)saveTabbarSelectedIndex:(NSUInteger)selectedIndex
|
||||
{
|
||||
if (selectedIndex == 0 || selectedIndex == 1) {
|
||||
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithUnsignedInteger:selectedIndex] forKey:TF_TABBAR_SELECT_MEMORY];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Notification
|
||||
// 隐藏tabbar
|
||||
- (void)hiddenTabbar:(NSNotification *)notification
|
||||
{
|
||||
self.tabBarController.tabBar.hidden = YES;
|
||||
|
||||
NSString *animationState = [NSString stringWithFormat:@"%@", notification.object];
|
||||
|
||||
if ([animationState isEqualToString:@"1"]) {
|
||||
self.tabBarController.tabBar.frame = CGRectMake(0, SCREEN_HEIGHT, self.tabBarController.tabBar.frame.size.width, self.tabBarController.tabBar.frame.size.height);
|
||||
} else {
|
||||
[UIView animateWithDuration:kAnimatedDuration animations:^{
|
||||
self.tabBarController.tabBar.frame = CGRectMake(0, SCREEN_HEIGHT, self.tabBarController.tabBar.frame.size.width, self.tabBarController.tabBar.frame.size.height);
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
// 显示tabbar
|
||||
- (void)showTabbar:(NSNotification *)notification
|
||||
{
|
||||
NSString *animationState = [NSString stringWithFormat:@"%@", notification.object];
|
||||
self.tabBarController.tabBar.hidden = NO;
|
||||
|
||||
if ([animationState isEqualToString:@"animation"]) {
|
||||
[UIView animateWithDuration:kAnimatedDuration animations:^{
|
||||
self.tabBarController.tabBar.frame = CGRectMake(0, SCREEN_HEIGHT - self.tabBarController.tabBar.frame.size.height, self.tabBarController.tabBar.frame.size.width, self.tabBarController.tabBar.frame.size.height);
|
||||
}];
|
||||
} else {
|
||||
self.tabBarController.tabBar.frame = CGRectMake(0, SCREEN_HEIGHT - self.tabBarController.tabBar.frame.size.height, self.tabBarController.tabBar.frame.size.width, self.tabBarController.tabBar.frame.size.height);
|
||||
}
|
||||
}
|
||||
|
||||
// 改变tabbar选项卡位置
|
||||
- (void)changTabbarIndex:(NSNotification *)notification
|
||||
{
|
||||
[self.tabBarController setSelectedIndex:[notification.object integerValue]];
|
||||
|
||||
NSUInteger selectIndex = [notification.object integerValue];
|
||||
[self saveTabbarSelectedIndex:selectIndex];
|
||||
}
|
||||
|
||||
// 改变tabbar结构
|
||||
- (void)changeMagicState:(NSNotification *)notification
|
||||
{
|
||||
// 如果本地状态与通知状态相同,就不更改界面
|
||||
if ([TFSystemInfoManager.magicStatus isEqualToString:notification.object]) {
|
||||
return;
|
||||
}
|
||||
|
||||
TFSystemInfoManager.magicStatus = notification.object;
|
||||
|
||||
self.tabBarController = nil;
|
||||
[kMainWindow setRootViewController:self.tabBarController];
|
||||
}
|
||||
|
||||
- (void)switchLanguage
|
||||
{
|
||||
if (![NSThread isMainThread]) {
|
||||
[self performSelectorOnMainThread:@selector(switchLanguage) withObject:nil waitUntilDone:YES];
|
||||
return;
|
||||
}
|
||||
|
||||
self.tabBarController = nil;
|
||||
kMainWindow.rootViewController = self.tabBarController;
|
||||
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:Notification_Change_Tabbar_Index object:@"1"];
|
||||
}
|
||||
@end
|
||||
Reference in New Issue
Block a user