             return TRZFont(descriptor: newDescriptor, size: 0)
         #endif
     }
+    
+    var verticallyCenteredColonFont:TRZFont {
+        guard #available(iOS 9.0, OSX 10.11, *) else { return self }
+        guard self.familyName == TRZFont.systemFontOfSize(self.pointSize).familyName else { return self }
+        
+        #if os(OSX)
+            let descriptor = self.fontDescriptor
+            let TRZFontFeatureSettingsAttribute = NSFontFeatureSettingsAttribute
+            let TRZFontFeatureTypeIdentifierKey = NSFontFeatureTypeIdentifierKey
+            let TRZFontFeatureSelectorIdentifierKey = NSFontFeatureSelectorIdentifierKey
+        #elseif os(iOS) || os(tvOS)
+            let descriptor = self.fontDescriptor()
+            let TRZFontFeatureSettingsAttribute = UIFontDescriptorFeatureSettingsAttribute
+            let TRZFontFeatureTypeIdentifierKey = UIFontFeatureTypeIdentifierKey
+            let TRZFontFeatureSelectorIdentifierKey = UIFontFeatureSelectorIdentifierKey
+        #endif
+        
+        let attributes = [
+            TRZFontFeatureSettingsAttribute: [
+                [
+                    TRZFontFeatureTypeIdentifierKey: kStylisticAlternativesType,
+                    TRZFontFeatureSelectorIdentifierKey: kStylisticAltThreeOnSelector
+                ]
+            ]
+        ]
+        
+        let newDescriptor = descriptor.fontDescriptorByAddingAttributes(attributes)
+        #if os(OSX)
+            return TRZFont(descriptor: newDescriptor, size: 0)!
+        #elseif os(iOS) || os(tvOS)
+            return TRZFont(descriptor: newDescriptor, size: 0)
+        #endif
+    }
 }
                    contentsLayer.contents = digitsImage.CGImage
                #endif
            } else {
                let contentsLayer = contentLayers[i]
                #if os(OSX)
                    contentsLayer.contents = createImageForNonDigit(char)
                #elseif os(iOS) || os(tvOS)
                    contentsLayer.contents = createImageForNonDigit(char).CGImage
                #endif
            }

            i++
        }
    }

    private func relayoutScrollLayers() {
        let individualSize = digitsImageIndividualDigitSize

        var currentOrigin = CGPointZero
        var boundingSize = CGSizeZero

        var i = 0

        let contentLayers = self.contentLayers
        var newLayers = [CALayer]()

        for char in text.characters {
            let currentLayer:CALayer? = (i < contentLayers.count) ? contentLayers[i] : nil
            if let _ = Int(String(char)) {
                let scrollLayer:CALayer
                if currentLayer?.valueForKey("myContents") as? String == "digits" {

                boundingSize.height = max(boundingSize.height, charLayer.bounds.height)
            }

            contentLayersIndex++
            charactersIndex++
        }
        
        while contentLayersIndex < contentLayers.endIndex {
            contentLayers[contentLayersIndex].removeFromSuperlayer()
            contentLayersIndex++
        }

        self.contentLayers = newLayers
