---
title: WKInterfaceTimer
framework: watchkit
role: symbol
role_heading: Class
path: watchkit/wkinterfacetimer
---

# WKInterfaceTimer

A label that displays a countdown or count-up timer.

## Declaration

```swift
class WKInterfaceTimer
```

## Overview

Overview Use a timer object to configure the amount of time and the appearance of the timer text. When you start the timer, WatchKit updates the displayed text automatically on the user’s Apple Watch without further interactions from your extension. To know when the timer reaches 0, configure a Timer object with the same target date you used to set up the timer. Do not subclass or create instances of this class yourself. Instead, define outlets in your interface controller class and connect them to the corresponding objects in your storyboard file. For example, to refer to a timer object in your interface, define a property with the following syntax in your interface controller class: During the initialization of your interface controller, WatchKit creates any needed timer objects and assigns them to their connected outlets. At that point, you can use those objects to reconfigure the corresponding timers. important: This class provides methods for configuring interface objects at initialization time or while an interface controller is active on the user’s Apple Watch. WatchKit coalesces the data from all setter method calls made during the same run loop iteration and transmits it to the device at the end of the run loop. If you set an attribute to different values in the same run loop iteration,  only the last value is transmitted. If you set an attribute to the same value in the same run loop iteration, WatchKit generates a log message so that you can track down the duplicate change. Interface Builder Configuration Options Xcode lets you configure information about your timer interface object in your storyboard file. The following table lists the attributes you can configure and their meaning.  |   |   |   |   |  A date object is a custom label whose text you cannot set directly. However, you can customize the appearance of the date object as you would for a label using the Attributes inspector in Xcode. For information about the label attributes you can configure, see WKInterfaceLabel.

## Topics

### Configuring the Timer Attributes

- [setDate(_:)](watchkit/wkinterfacetimer/setdate(_:).md)
- [setTextColor(_:)](watchkit/wkinterfacetimer/settextcolor(_:).md)

### Starting and Stopping the Timer

- [start()](watchkit/wkinterfacetimer/start().md)
- [stop()](watchkit/wkinterfacetimer/stop().md)

## Relationships

### Inherits From

- [WKInterfaceObject](watchkit/wkinterfaceobject.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Controls

- [WKInterfaceLabel](watchkit/wkinterfacelabel.md)
- [WKInterfaceDate](watchkit/wkinterfacedate.md)
- [WKInterfaceButton](watchkit/wkinterfacebutton.md)
- [WKInterfaceAuthorizationAppleIDButton](watchkit/wkinterfaceauthorizationappleidbutton.md)
- [WKInterfacePaymentButton](watchkit/wkinterfacepaymentbutton.md)
- [WKInterfaceTextField](watchkit/wkinterfacetextfield.md)
- [WKInterfaceSwitch](watchkit/wkinterfaceswitch.md)
- [WKInterfaceSlider](watchkit/wkinterfaceslider.md)
- [WKInterfaceActivityRing](watchkit/wkinterfaceactivityring.md)
- [WKInterfaceMap](watchkit/wkinterfacemap.md)
