如何隐藏或删除Apple Watch状态栏中的时间?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何隐藏或删除Apple Watch状态栏中的时间?相关的知识,希望对你有一定的参考价值。

如何从我的应用程序上的Apple Watch状态栏屏幕隐藏或删除小时钟?

我在网上搜索了这个,但一无所获!

我刚刚发现,如果你删除那个时钟,Apple会拒绝你的应用程序,但我的应用程序本身就是一个表盘而且不需要显示那个时间。

答案

正如您所指出的那样,尝试隐藏或删除状态栏中的时间会导致您的应用被拒绝。

由于Apple不允许开发人员创建自定义表盘(即使在watchOS 3中),也无法完成您想要做的事情。

更新:

对于您的信息,状态栏上没有显示时间的唯一情况是模式演示文稿同时具有左侧和右侧条形按钮标题。这通常不会发生,但会在听写期间发生 - 文本输入控制器在左侧显示“取消”按钮,在状态栏右侧显示“完成”按钮。

虽然黑客攻击标题(或使用私有API)不会让您的应用程序获得批准,但您可能会研究一种“隐藏”状态栏本身的方式,或者任何其他模态视图的正确标题显示时间。

我只是指出这些事情,以防你只想制作一个特定的应用程序供自己使用。由于Apple会拒绝违反其要求的应用,因此我不鼓励您浪费时间尝试创建一个您知道会被拒绝的应用。

另一答案

实际上找到了一种隐藏时间叠加在Github open-source project上的方法。

以下是它的完成方式(在Objc中):

#import "InterfaceController.h"
#import "FaceScene.h"

@import ObjectiveC.runtime;
@import SpriteKit;

@interface NSObject (fs_override)
+(id)sharedApplication;
-(id)keyWindow;
-(id)rootViewController;
-(NSArray *)viewControllers;
-(id)view;
-(NSArray *)subviews;
-(id)timeLabel;
-(id)layer;
@end

@implementation InterfaceController

- (void)didAppear
{
    /* Hack to make the digital time overlay disappear */

    NSArray *views = [[[[[[[NSClassFromString(@"UIApplication") sharedApplication] keyWindow] rootViewController] viewControllers] firstObject] view] subviews];

    for (NSObject *view in views)
    {
        if ([view isKindOfClass:NSClassFromString(@"SPFullScreenView")])
            [[[view timeLabel] layer] setOpacity:0];
    }
}

@end

以上是关于如何隐藏或删除Apple Watch状态栏中的时间?的主要内容,如果未能解决你的问题,请参考以下文章

当 Apple Watch 处于后台状态或睡眠模式时,我们如何从 iphone 向 Apple Watch 发送消息?

Apple Watch:删除接口控制器的状态栏

了解隐藏在状态栏中的幻数

如何在 Xcode 中创建 Apple Watch 应用或配置 Apple Watch 应用

onCreateOptionsMenu中的expandActionView永久删除或隐藏操作栏中的其他菜单项

如何使用/获取 Apple Watch 全屏模式