You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
276 lines
10 KiB
276 lines
10 KiB
// |
|
// TFComicBrowseSetBar.m |
|
// TFReader |
|
// |
|
// Created by 谢腾飞 on 2020/12/16. |
|
// Copyright © 2020 xtfei_2011@126.com. All rights reserved. |
|
// |
|
|
|
#import "TFComicBrowseSetBar.h" |
|
#import "KLSwitch.h" |
|
#import "TFNightModeView.h" |
|
#import <AudioToolbox/AudioToolbox.h> |
|
|
|
#define Menu_Setting_Cell_Height 70 |
|
#define Menu_Setting_Bar_Height (2 * Menu_Setting_Cell_Height + PUB_NAVBAR_OFFSET) |
|
|
|
@interface TFComicBrowseSetBar () |
|
|
|
@property (nonatomic ,strong) UIView *bottomView; |
|
@property (nonatomic ,strong) KLSwitch *clickPageSwitch; |
|
@property (nonatomic ,strong) KLSwitch *nightSwitch; |
|
|
|
@end |
|
|
|
@implementation TFComicBrowseSetBar |
|
|
|
- (instancetype)init |
|
{ |
|
if (self = [super init]) { |
|
self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); |
|
self.backgroundColor = kBlackTransparentColor; |
|
self.hidden = YES; |
|
[kMainWindow addSubview:self]; |
|
|
|
NSUserDefaults *defualt = [NSUserDefaults standardUserDefaults]; |
|
// 默认开启 |
|
if (![defualt objectForKey:Enable_Click_Page]) { |
|
[defualt setObject:@"1" forKey:Enable_Click_Page]; |
|
[defualt synchronize]; |
|
} |
|
|
|
// 默认关闭 |
|
if (![defualt objectForKey:Enable_Click_Night]) { |
|
[defualt setObject:@"0" forKey:Enable_Click_Night]; |
|
[defualt synchronize]; |
|
} |
|
|
|
// 默认开启 |
|
if (![defualt objectForKey:Enable_Barrage]) { |
|
[defualt setObject:@"1" forKey:Enable_Barrage]; |
|
[defualt synchronize]; |
|
} |
|
|
|
[self createSubViews]; |
|
} |
|
return self; |
|
} |
|
|
|
- (void)createSubViews |
|
{ |
|
self.bottomView = [[UIView alloc] init]; |
|
self.bottomView.backgroundColor = [UIColor whiteColor]; |
|
[self addSubview:self.bottomView]; |
|
|
|
[self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.mas_equalTo(0); |
|
make.top.mas_equalTo(self.mas_bottom); |
|
make.width.mas_equalTo(self.mas_width); |
|
make.height.mas_equalTo(Menu_Setting_Bar_Height); |
|
}]; |
|
|
|
NSInteger cellIndex = 0; |
|
{ |
|
UIView *cell = [[UIView alloc] init]; |
|
cell.backgroundColor = [UIColor whiteColor]; |
|
[self.bottomView addSubview:cell]; |
|
|
|
[cell mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.mas_equalTo(0); |
|
make.top.mas_equalTo(cellIndex * Menu_Setting_Cell_Height); |
|
make.width.mas_equalTo(self.bottomView.mas_width); |
|
make.height.mas_equalTo(Menu_Setting_Cell_Height); |
|
}]; |
|
|
|
self.clickPageSwitch = [[KLSwitch alloc] initWithFrame:CGRectMake(1, 1, 51, 31) didChangeHandler:^(BOOL isOn) { |
|
AudioServicesPlaySystemSound(1519); |
|
if (isOn) { |
|
[[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:Enable_Click_Page]; |
|
[[NSNotificationCenter defaultCenter] postNotificationName:Enable_Click_Page object:@"1"]; |
|
} else { |
|
[[NSUserDefaults standardUserDefaults] setObject:@"0" forKey:Enable_Click_Page]; |
|
[[NSNotificationCenter defaultCenter] postNotificationName:Enable_Click_Page object:@"0"]; |
|
} |
|
[[NSUserDefaults standardUserDefaults] synchronize]; |
|
}]; |
|
self.clickPageSwitch.onTintColor = kMainColor; |
|
self.clickPageSwitch.transform = CGAffineTransformMakeScale(0.7, 0.7);//缩放 |
|
[cell addSubview:self.clickPageSwitch]; |
|
|
|
if ([[[NSUserDefaults standardUserDefaults] objectForKey:Enable_Click_Page] isEqualToString:@"1"]) { |
|
[self.clickPageSwitch setDefaultOnState:YES]; |
|
} else { |
|
[self.clickPageSwitch setDefaultOnState:NO]; |
|
} |
|
|
|
[self.clickPageSwitch mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.centerY.mas_equalTo(cell.mas_centerY); |
|
make.right.mas_equalTo(cell.mas_right).with.offset(- kHalfMargin); |
|
make.width.mas_equalTo(51); |
|
make.height.mas_equalTo(31); |
|
}]; |
|
|
|
UILabel *titleLabel = [[UILabel alloc] init]; |
|
titleLabel.text = TFLocalizedString(@"点击翻页"); |
|
titleLabel.textAlignment = NSTextAlignmentLeft; |
|
titleLabel.textColor = kBlackColor; |
|
titleLabel.font = kMainFont; |
|
[cell addSubview:titleLabel]; |
|
|
|
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.bottom.mas_equalTo(cell.mas_centerY); |
|
make.left.mas_equalTo(kHalfMargin); |
|
make.width.mas_equalTo(SCREEN_WIDTH / 2); |
|
make.height.mas_equalTo(20); |
|
}]; |
|
|
|
UILabel *subTitleLabel = [[UILabel alloc] init]; |
|
subTitleLabel.numberOfLines = 2; |
|
subTitleLabel.preferredMaxLayoutWidth = SCREEN_WIDTH - kMargin - 51.0 - kQuarterMargin; |
|
subTitleLabel.text = TFLocalizedString(@"打开后可点击屏幕上下方翻页"); |
|
subTitleLabel.textAlignment = NSTextAlignmentLeft; |
|
subTitleLabel.textColor = kGrayTextColor; |
|
subTitleLabel.font = kFont12; |
|
[cell addSubview:subTitleLabel]; |
|
|
|
[subTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.mas_equalTo(titleLabel.mas_left); |
|
make.top.mas_equalTo(titleLabel.mas_bottom); |
|
make.right.equalTo(self.clickPageSwitch.mas_left).offset(-kQuarterMargin); |
|
make.height.mas_equalTo(subTitleLabel.intrinsicContentSize.height); |
|
}]; |
|
|
|
UIView *line = [[UIView alloc] init]; |
|
line.backgroundColor = kGrayLineColor; |
|
[cell addSubview:line]; |
|
|
|
[line mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.mas_equalTo(kMargin); |
|
make.height.mas_equalTo(kCellLineHeight); |
|
make.width.mas_equalTo(SCREEN_WIDTH); |
|
make.bottom.mas_equalTo(cell.mas_bottom); |
|
}]; |
|
|
|
cellIndex ++; |
|
} |
|
|
|
{ |
|
UIView *cell = [[UIView alloc] init]; |
|
cell.backgroundColor = [UIColor whiteColor]; |
|
[self.bottomView addSubview:cell]; |
|
|
|
[cell mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.mas_equalTo(0); |
|
make.top.mas_equalTo(cellIndex * Menu_Setting_Cell_Height); |
|
make.width.mas_equalTo(self.bottomView.mas_width); |
|
make.height.mas_equalTo(Menu_Setting_Cell_Height); |
|
}]; |
|
|
|
self.nightSwitch = [[KLSwitch alloc] initWithFrame:CGRectMake(1, 1, 51, 31) didChangeHandler:^(BOOL isOn) { |
|
AudioServicesPlaySystemSound(1519); |
|
if (isOn) { |
|
[[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:Enable_Click_Night]; |
|
[[NSUserDefaults standardUserDefaults] synchronize]; |
|
[[NSNotificationCenter defaultCenter] postNotificationName:Enable_Click_Night object:@"1"]; |
|
} else { |
|
[[NSUserDefaults standardUserDefaults] setObject:@"0" forKey:Enable_Click_Night]; |
|
[[NSUserDefaults standardUserDefaults] synchronize]; |
|
[[NSNotificationCenter defaultCenter] postNotificationName:Enable_Click_Night object:@"0"]; |
|
} |
|
[[NSUserDefaults standardUserDefaults] synchronize]; |
|
}]; |
|
self.nightSwitch.onTintColor = kMainColor; |
|
self.nightSwitch.transform = CGAffineTransformMakeScale(0.7, 0.7); // 缩放 |
|
[cell addSubview:self.nightSwitch]; |
|
|
|
if ([[[NSUserDefaults standardUserDefaults] objectForKey:Enable_Click_Night] isEqualToString:@"1"]) { |
|
[self.nightSwitch setDefaultOnState:YES]; |
|
} else { |
|
[self.nightSwitch setDefaultOnState:NO]; |
|
} |
|
|
|
[self.nightSwitch mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.centerY.mas_equalTo(cell.mas_centerY); |
|
make.right.mas_equalTo(cell.mas_right).with.offset(- kHalfMargin); |
|
make.width.mas_equalTo(51); |
|
make.height.mas_equalTo(31); |
|
}]; |
|
|
|
UILabel *titleLabel = [[UILabel alloc] init]; |
|
titleLabel.text = TFLocalizedString(@"夜间模式"); |
|
titleLabel.textAlignment = NSTextAlignmentLeft; |
|
titleLabel.textColor = kBlackColor; |
|
titleLabel.font = kMainFont; |
|
[cell addSubview:titleLabel]; |
|
|
|
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.centerY.mas_equalTo(cell.mas_centerY); |
|
make.left.mas_equalTo(kHalfMargin); |
|
make.width.mas_equalTo(SCREEN_WIDTH / 2); |
|
make.height.mas_equalTo(30); |
|
}]; |
|
|
|
cellIndex ++; |
|
} |
|
} |
|
|
|
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event |
|
{ |
|
UIView *touchView = [[touches anyObject] view]; |
|
if (![touchView isEqual:self.bottomView]) { |
|
[self hiddenSettingBar]; |
|
} |
|
} |
|
|
|
- (void)showSettingBar |
|
{ |
|
self.hidden = NO; |
|
|
|
[UIView animateWithDuration:kAnimatedDuration animations:^{ |
|
[self.bottomView mas_updateConstraints:^(MASConstraintMaker *make) { |
|
make.top.mas_equalTo(self.mas_bottom).with.offset(- Menu_Setting_Bar_Height); |
|
}]; |
|
}]; |
|
|
|
[UIView animateWithDuration:kAnimatedDuration animations:^{ |
|
[self.bottomView.superview layoutIfNeeded]; |
|
}]; |
|
} |
|
|
|
- (void)hiddenSettingBar |
|
{ |
|
[self.bottomView.superview setNeedsUpdateConstraints]; |
|
|
|
[UIView animateWithDuration:kAnimatedDuration animations:^{ |
|
[self.bottomView mas_updateConstraints:^(MASConstraintMaker *make) { |
|
make.top.mas_equalTo(self.mas_bottom); |
|
}]; |
|
}]; |
|
|
|
[UIView animateWithDuration:kAnimatedDuration animations:^{ |
|
[self.bottomView.superview layoutIfNeeded]; |
|
} completion:^(BOOL finished) { |
|
self.hidden = YES; |
|
}]; |
|
} |
|
|
|
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event |
|
{ |
|
UIView *view = [super hitTest:point withEvent:event]; |
|
|
|
if ([self.clickPageSwitch pointInside:[self.clickPageSwitch convertPoint:point fromView:self] withEvent:event]) { |
|
return self.clickPageSwitch; |
|
} |
|
|
|
if ([self.nightSwitch pointInside:[self.nightSwitch convertPoint:point fromView:self] withEvent:event]) { |
|
return self.nightSwitch; |
|
} |
|
|
|
if ([self.bottomView pointInside:[self.bottomView convertPoint:point fromView:self] withEvent:event]) { |
|
return self.bottomView; |
|
} |
|
|
|
return view; |
|
} |
|
|
|
@end
|
|
|