Apple Watch Water Lock

See how to use the enableWaterLock() API of WatchKit to disable the Apple Watch touch screen to prevent accidental taps.

Francesco Leoni

1 min read


watchOS 6.1

Are you planning to create an app that will be used while swimming or doing water activities?

If so, you will need to lock the Apple Watch touch screen to prevent accidental taps while submerged.


The WatchKit framework provides a method to lock the screen programmatically, but only the user will be able to unlock it.

To use this feature you must call:



enableWaterLock() must be called from the main thread.


To be able to activate enableWaterLock() the app must be running on a supported device and the WKInterfaceDevice.current().waterResistanceRating must be wr50.

Additional features

To detect whether the screen is locked, Apple provides this property:



Now you can prevent accidental taps while your users are having fun in water!

I hope I helped you with you journey with watchOS development.

See you in the next guide.

If you have any question about this article, feel free to email me or tweet me @franceleonidev and share your opinion.

Thank you for reading and see you in the next article!

Share this article

Related articles

Create Custom Units and Dimensions in Swift (Part 2)

Learn how to use the measurements APIs to create custom units and convert units of measure easily and effortlessly with Swift.

2 min read


Autocompletion for Images and Colours in Xcode 15

Automatically generate colors and images resources from .xcassets and avoid typos in your code with autocompletion in Xcode 15.

2 min read


Fix “Build input file cannot be found“ Error in Xcode

See how to fix the “Build input file cannot be found“ error in Xcode. It can be caused by different reasons.

1 min read