处理tabbar
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/// AI 语音陪伴聊天主界面
|
||||
@interface KBAiMainVC : UIViewController
|
||||
@interface KBAiMainVC : BaseViewController
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@@ -46,6 +46,11 @@
|
||||
[self setupOrchestrator];
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
// TabBar 背景色由 BaseTabBarController 统一管理,这里不需要设置
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewWillDisappear:animated];
|
||||
|
||||
@@ -56,55 +61,16 @@
|
||||
- (void)viewDidLayoutSubviews {
|
||||
[super viewDidLayoutSubviews];
|
||||
|
||||
// 设置黑色渐变层(从底部到顶部,黑色到透明)
|
||||
if (!self.gradientLayer) {
|
||||
self.gradientLayer = [CAGradientLayer layer];
|
||||
self.gradientLayer.startPoint = CGPointMake(0.53, 1); // 底部
|
||||
self.gradientLayer.endPoint = CGPointMake(0.54, 0); // 顶部
|
||||
// 渐变颜色:从黑色 24% 不透明度到透明
|
||||
self.gradientLayer.colors = @[
|
||||
(__bridge id)[UIColor colorWithRed:0 / 255.0
|
||||
green:0 / 255.0
|
||||
blue:0 / 255.0
|
||||
alpha:0.24]
|
||||
.CGColor,
|
||||
(__bridge id)[UIColor colorWithRed:3 / 255.0
|
||||
green:3 / 255.0
|
||||
blue:3 / 255.0
|
||||
alpha:0]
|
||||
.CGColor
|
||||
];
|
||||
self.gradientLayer.locations = @[ @(0.7), @(1.0) ];
|
||||
[self.tabbarBackgroundView.layer addSublayer:self.gradientLayer];
|
||||
// 只更新 mask 的 frame(mask 已在 setupUI 中创建)
|
||||
if (self.blurEffectView.layer.mask) {
|
||||
self.blurEffectView.layer.mask.frame = self.blurEffectView.bounds;
|
||||
}
|
||||
|
||||
// 更新黑色渐变层的 frame
|
||||
self.gradientLayer.frame = self.tabbarBackgroundView.bounds;
|
||||
|
||||
// 为 blurEffectView 添加透明度渐变
|
||||
// mask(从底部到中间不透明,从中间到顶部透明)
|
||||
if (!self.blurEffectView.layer.mask) {
|
||||
CAGradientLayer *maskLayer = [CAGradientLayer layer];
|
||||
maskLayer.startPoint = CGPointMake(0.5, 1); // 底部
|
||||
maskLayer.endPoint = CGPointMake(0.5, 0); // 顶部
|
||||
// 底部到中间保持不透明,从中间到顶部过渡透明
|
||||
maskLayer.colors = @[
|
||||
(__bridge id)[UIColor whiteColor].CGColor, // 底部:完全不透明
|
||||
(__bridge id)[UIColor whiteColor].CGColor, // 中间:完全不透明
|
||||
(__bridge id)[UIColor clearColor].CGColor // 顶部:完全透明
|
||||
];
|
||||
maskLayer.locations = @[ @(0.0), @(0.5), @(1.0) ];
|
||||
self.blurEffectView.layer.mask = maskLayer;
|
||||
}
|
||||
|
||||
// 更新 mask 的 frame
|
||||
self.blurEffectView.layer.mask.frame = self.blurEffectView.bounds;
|
||||
}
|
||||
|
||||
#pragma mark - UI Setup
|
||||
|
||||
- (void)setupUI {
|
||||
self.view.backgroundColor = [UIColor systemBackgroundColor];
|
||||
self.view.backgroundColor = [UIColor whiteColor];
|
||||
self.title = @"AI 助手";
|
||||
|
||||
// 安全区域
|
||||
@@ -131,7 +97,19 @@
|
||||
self.blurEffectView.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
[self.tabbarBackgroundView addSubview:self.blurEffectView];
|
||||
|
||||
// 渐变层将在 viewDidLayoutSubviews 中设置
|
||||
// 为 blurEffectView 创建透明度渐变
|
||||
// mask(从底部到中间不透明,从中间到顶部透明)
|
||||
CAGradientLayer *maskLayer = [CAGradientLayer layer];
|
||||
maskLayer.startPoint = CGPointMake(0.5, 1); // 底部
|
||||
maskLayer.endPoint = CGPointMake(0.5, 0); // 顶部
|
||||
// 底部到中间保持不透明,从中间到顶部过渡透明
|
||||
maskLayer.colors = @[
|
||||
(__bridge id)[UIColor whiteColor].CGColor, // 底部:完全不透明
|
||||
(__bridge id)[UIColor whiteColor].CGColor, // 中间:完全不透明
|
||||
(__bridge id)[UIColor clearColor].CGColor // 顶部:完全透明
|
||||
];
|
||||
maskLayer.locations = @[ @(0.0), @(0.5), @(1.0) ];
|
||||
self.blurEffectView.layer.mask = maskLayer;
|
||||
|
||||
// 状态标签
|
||||
self.statusLabel = [[UILabel alloc] init];
|
||||
|
||||
Reference in New Issue
Block a user