如何在我的应用程序中隐藏或删除Apple Watch statusbar屏幕上的小钟?
我在网上搜索了这个,但什么也没找到!
我刚刚发现,如果你删除那个时钟,苹果会拒绝你的应用程序,但我的应用程序本身就是手表,不需要显示那个时间。
发布于 2016-06-28 06:18:06
正如您所指出的,试图隐藏或删除状态栏中的时间会导致应用程序被拒绝。
目前还没有办法完成你想做的事情,因为苹果不允许开发人员创建定制的手表面板(即使是在watchOS 3中)。
更新:
对于您的信息,当时间没有出现在状态栏时,唯一的情况是一个模态演示文稿同时有一个左键和一个右栏按钮标题。这通常不会发生,但会在听写过程中发生--文本输入控制器在左边显示一个Cancel按钮,在状态栏右边显示一个Done按钮。
虽然对条形图(或使用私有API)进行黑客攻击不会使应用程序获得批准,但您可能会考虑一种“隐藏”状态栏本身的方法,或者其他没有显示时间的模式视图的正确标题。
我只是指出这些东西,以防你只是想做一个特定的应用程序,供你自己使用。因为苹果会拒绝违反他们要求的应用程序,我不会鼓励你浪费时间去做一个你知道会被拒绝的应用程序。
发布于 2021-01-30 12:04:12
这是使用Swift和动态的GaétanZ的答复。(watchOS 7+)
let app = Dynamic.PUICApplication.sharedPUICApplication()
app._setStatusBarTimeHidden(true, animated: false, completion: nil)
这是使用私有API,避免在应用程序中使用它的应用程序商店。不过,有个诡计..。
唯一的应用程序商店应用程序,我知道,并确实隐藏时钟是时钟。它使用一个可以从外部源获得的.clock文件,该.clock文件使角落中的时钟不可见(可能通过调用应用程序中已经存在的函数,其中包含类似于上面的代码)。
发布于 2018-10-11 12:16:52
实际上找到了一种在Github开源项目上隐藏时间覆盖的方法。
下面是它的实现方式(在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
https://stackoverflow.com/questions/38067952
复制相似问题