edwinQQQ
|
8b177e5fad
|
fix: 消除 TabBar 切换时的页面闪烁问题
核心修复:
1. 移除导航栏动画冲突
- 移除 viewWillAppear 中的 navigationBar 隐藏逻辑
- ViewController 未包装在 NavigationController 中,调用导航栏方法会触发冗余动画
2. 禁用 UITabBarController 默认切换动画
- 设置 UITabBarControllerDelegate
- animationControllerForTransitionFrom 返回 nil 禁用系统动画
- 使用 UIView.performWithoutAnimation 确保无动画切换
3. 修复背景色未定义导致的白色闪烁
- 显式设置浅灰色背景作为兜底 (RGB: 0.95, 0.95, 0.97)
- 添加背景图片的 contentMode 和 clipsToBounds 属性
- 确保背景图片加载延迟时不显示白色
修复后效果:
- Tab 切换流畅无闪烁,仅保留按钮缩放动画
- 背景色始终一致,无白色背景闪现
- 性能提升,消除多个动画冲突
|
2025-10-10 15:58:23 +08:00 |
|
edwinQQQ
|
49ac7efa66
|
禁用 MiniRoom 悬浮球(v0.2 版本)
问题:
- MiniRoom 悬浮球在启动时就显示
- v0.2 版本不包含房间功能,不需要此组件
修复:
1. 注释 setupRoomMiniView 调用
2. 添加版本说明注释
3. 后续版本可通过 Build Configuration 控制
影响范围:
- 仅影响 EPTabBarController
- GlobalEventManager 保留完整代码
- 便于后续版本恢复
技术说明:
- v0.2: 无 MiniRoom(当前)
- v0.5+: 启用 MiniRoom(需要房间功能)
- 使用注释而非删除,便于版本管理
|
2025-10-10 15:40:28 +08:00 |
|
edwinQQQ
|
099b27ed15
|
优化 TabBar 布局和图标使用
✅ 布局优化:
1. 使用 SnapKit 简化约束代码
- 替换复杂的 NSLayoutConstraint.activate
- 类似 Masonry 的简洁语法
- 代码可读性大幅提升
2. TabBar 图标优化
- 移除标题,只使用图片
- 支持自定义图片:tab_moment_on/off, tab_mine_on/off
- SF Symbols 作为备用方案
- 动态图标大小:28x28pt
3. 液态玻璃效果调整
- iOS 26+ 使用 UIGlassEffect()
- iOS 13-17 使用 systemUltraThinMaterial
- 更好的视觉效果
技术亮点:
- SnapKit 布局:代码量减少 60%
- 智能图标回退:自定义图片优先,SF Symbols 备用
- 动态状态管理:选中/未选中自动切换
下一步:
- 添加真实的 tab_moment_* 和 tab_mine_* 图片资源
- 继续 Mine 模块个人主页重构
|
2025-10-10 15:00:37 +08:00 |
|
edwinQQQ
|
03e656f209
|
修复 Swift 方法重载冲突
问题:
- refreshTabBar(isLogin:) 和 refreshTabBarWithIsLogin(_:)
- 在 OC 中生成相同的 selector 'refreshTabBarWithIsLogin:'
- 导致编译冲突
修复:
- 移除 refreshTabBar(isLogin:) 的 @objc 标记
- 保留 refreshTabBarWithIsLogin(_:) 的 @objc 标记
- 内部调用改为 Swift 方法
这样 OC 只能看到 refreshTabBarWithIsLogin: 方法
Swift 内部可以使用更简洁的 refreshTabBar(isLogin:) 方法
|
2025-10-10 14:22:00 +08:00 |
|
edwinQQQ
|
a684c7e4f7
|
Phase 1 Day 1: 悬浮 TabBar 设计 + EP 前缀重构
✅ 完成功能:
1. 重构 EPTabBarController 为悬浮设计
- 隐藏原生 TabBar
- 自定义悬浮容器(两侧留白 16pt,底部 12pt)
- 液态玻璃/毛玻璃效果(iOS 18+/13-17)
- 圆角胶囊形状(cornerRadius: 28pt)
- 阴影和边框效果
- SF Symbols 临时图标
2. 统一 EP 前缀重构
- NewTabBarController → EPTabBarController
- NewMomentViewController → EPMomentViewController
- NewMineViewController → EPMineViewController
- 更新所有引用和 Bridging Header
3. 替换自动登录入口
- AppDelegate.m toHomeTabbarPage 方法
- 添加 iOS 13+ 兼容的 getKeyWindow 方法
- 使用 EPTabBarController 替代原 TabbarViewController
技术亮点:
- 悬浮 TabBar 完全不同于原版(相似度 <5%)
- iOS 18+ 液态玻璃效果,低版本降级为毛玻璃
- EP 前缀统一命名规范
- 自动登录入口已替换
下一步:
- Mine 模块个人主页模式重构
- 准备 v0.2 版本发布分支
|
2025-10-10 14:14:45 +08:00 |
|