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

问题描述 投票:5回答:2

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

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

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

user-interface watchkit apple-watch watch-os
2个回答
6
投票

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

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

更新:

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

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

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


0
投票

实际上找到了一种隐藏时间叠加在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
© www.soinside.com 2019 - 2024. All rights reserved.