查看源码 | 完整头文件
一键隐藏抖音所有 UI 元素,获得沉浸式观看体验。
- 长按视频触发清屏
- 隐藏顶部导航栏
- 隐藏底部 TabBar
- 隐藏右侧互动按钮(点赞/评论/分享)
- 隐藏底部信息区(描述/用户名)
- 再次长按恢复显示
- 完整的抖音 37.6.0 头文件
- 详细的 UI 层级结构文档
- 所有控制器和视图类名
- 适合逆向开发学习
步骤
- 编译 dylib 文件
- 通过 TrollTools 注入抖音
- 播放视频时长按屏幕触发清屏
- 再次长按恢复 UI 显示
适配版本: Douyin 37.6.0
| 类名 | 说明 |
|---|
AWEMaskWindow | 抖音主窗口 |
UITextEffectsWindow | 系统文本效果窗口 |
| 类名 | 说明 |
|---|
AWENormalModeTabBarController | 主 TabBar 控制器 |
AWEBaseRootNavigationController | 根导航控制器 |
AWEFeedRootViewController | Feed 根控制器 |
AWEFeedContainerViewController | Feed 容器控制器 |
AWEPlayVideoViewController | 视频播放控制器 |
AWEPlayInteractionViewController | 播放交互控制器 |
| 类名 | 说明 |
|---|
AWEElementStackView | 右侧互动组件容器 |
AWEFeedVideoButton | 视频按钮(点赞/评论/收藏/分享) |
AWEPlayInteractionUserAvatarView | 用户头像视图 |
AWEPlayInteractionMusicView | 音乐视图(旋转唱片) |
| 类名 | 说明 |
|---|
AWEPlayInteractionDescriptionLabel | 视频描述文本 |
AWEUserNameLabel | 用户名标签 |
AWEPlayInteractionProgressContainerView | 进度条容器 |
| 类名 | 说明 |
|---|
AWEFeedTopBarContainer | 顶部栏容器 |
AWELeftSideBarEntranceView | 左侧边栏入口 |
AWEHPDiscoverFeedEntranceView | 发现入口(搜索图标) |
| 类名 | 说明 |
|---|
AWENormalModeTabBar | 底部 TabBar |
AWENormalModeTabBarGeneralButton | TabBar 按钮 |
AWENormalModeTabBarGeneralPlusButton | 发布按钮(+) |
| 项目 | 要求 |
|---|
| iOS 版本 | 15.0+ |
| 编译环境 | Theos |
| 注入工具 | TrollTools |
| 抖音版本 | 37.6.0(推荐) |
%hook AWEPlayInteractionViewController
UILongPressGestureRecognizer *longPress =
[[UILongPressGestureRecognizer alloc]
initWithTarget:self action:@selector(handleLongPress:)];
[self.view addGestureRecognizer:longPress];
- (void)handleLongPress:(UILongPressGestureRecognizer *)gesture {
if (gesture.state == UIGestureRecognizerStateBegan) {
[self toggleClearScreen];
- (void)toggleClearScreen {
static BOOL isClearScreen = NO;
isClearScreen = !isClearScreen;
[self hideTopBar:isClearScreen];
[self hideBottomBar:isClearScreen];
[self hideInteractionButtons:isClearScreen];
[self hideDescriptionLabel:isClearScreen];
%hook AWEFeedTopBarContainer
- (void)setHidden:(BOOL)hidden {
if (clearScreenEnabled) {
%hook AWEElementStackView
- (void)setAlpha:(CGFloat)alpha {
if (clearScreenEnabled) {
作者: @cookieodd | Telegram