// // WXBookReaderToolBar.m // TFReader // // Created by Andrew on 2018/5/30. // Copyright © 2018年 Andrew. All rights reserved. // #import "WXYZ_BookReaderMenuBar.h" #import "TFReaderSettingHelper.h" #import "WXYZ_BookReaderTopBar.h" #import "WXYZ_BookReaderBottomBar.h" #if TF_Enable_Ai #import "WXYZ_TouchAssistantView.h" #endif #define ToolBar_Normal_Height (60 + PUB_TABBAR_OFFSET) @interface WXYZ_BookReaderMenuBar () { // 导航条 WXYZ_BookReaderTopBar *navBar; // 工具条 WXYZ_BookReaderBottomBar *toolBar; TFReaderSettingHelper *functionalManager; } @end @implementation WXYZ_BookReaderMenuBar implementation_singleton(WXYZ_BookReaderMenuBar) - (instancetype)init { if (self = [super init]) { [self initialize]; [self createSubViews]; } return self; } - (void)initialize { self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); self.backgroundColor = [UIColor clearColor]; [kMainWindow addSubview:self]; self.hidden = YES; functionalManager = [TFReaderSettingHelper sharedManager]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hiddend) name:NSNotification_Hidden_Bottom_ToolNav object:nil]; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint toolBarPoint = [toolBar.layer convertPoint:[touch locationInView:self] fromLayer:self.layer]; CGPoint navBarPoint = [navBar.layer convertPoint:[touch locationInView:self] fromLayer:self.layer]; if (![toolBar.layer containsPoint:toolBarPoint] && ![navBar.layer containsPoint:navBarPoint]) { [self hiddend]; } } - (void)hiddend { if (functionalManager.state == TFReaderAutoReadStateStart && self.hidden) { [self show]; return; } [navBar hiddenNavBarCompletion:^{ self.hidden = YES; }]; [toolBar hiddenToolBar]; #if TF_Enable_Ai [[WXYZ_TouchAssistantView sharedManager] hiddenAssistiveTouchView]; #endif } - (void)show { [kMainWindow bringSubviewToFront:self]; self.hidden = NO; if (!toolBar.autoReading) { [navBar showNavBarCompletion:^{ }]; [toolBar showToolBar]; } else { [functionalManager setAutoReaderState:TFReaderAutoReadStatePause]; [navBar hiddenNavBarCompletion:^{ }]; [toolBar showAutoReadToolBar]; } #if TF_Enable_Ai [[WXYZ_TouchAssistantView sharedManager] showAssistiveTouchView]; #endif } - (void)createSubViews { navBar = [[WXYZ_BookReaderTopBar alloc] initWithFrame:CGRectMake(0, - PUB_NAVBAR_HEIGHT, SCREEN_WIDTH, PUB_NAVBAR_HEIGHT)]; [self addSubview:navBar]; toolBar = [[WXYZ_BookReaderBottomBar alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT, SCREEN_WIDTH, ToolBar_Normal_Height)]; [self addSubview:toolBar]; } - (void)stopAutoRead { [toolBar stopAutoRead]; } - (void)popViewContriller { [[NSNotificationCenter defaultCenter] postNotificationName:NSNotification_Reader_Back object:nil]; [self stopAutoRead]; } @end