How To Hide statusBarTime in a WatchOS App

I’ve been playing with WatchOS apps for some time and like everyone else, always wanted to create my own watch faces. Apple has never allowed this and I don’t see that ever changing. To punctuate this fact, they mandate a status bar in the upper-right corner of every WatchOS that shows the system time. Now, developers have been trying to get around this forever and there have been some successful strategies in the past. I’m writing this post to outline the 2 ways I know how to accomplish this today, on WatchOS 27 (I assume it works on previous versions as well).

How to hide the status bar on WatchOS:
1. If you are willing to live with a white background for your app, you can simply put:

ZStack {
    Color.white
        .ignoresSafeArea()
    ...
}

at the top of your ZStack. Since the system time in the status bar is always rendered in white, this effectively “masks” it. Note however that you can’t put anything in the upper-right area, otherwise the time will shine through.

2. The MUCH better way, which I found here on Stack Overflow, dated from 2024, still works! Just add the following after the bottom brace of your top-most view, most likely a ZStack:

ZStack {
    ...
}
._statusBarHidden()

Rejoice while this still works. The fun watch faces I have been building finally look clean.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top