 	}
 
 
+	public final override func drawRect(rect: CGRect) {
+		// drawLayer(_:inContext) will be called.
+		// drawRect() must still be implemented so that setNeedsDisplay() will work.
+	}
+
+
 	public override func drawLayer(layer: CALayer, inContext context: CGContext) {
 		guard let layer = layer as? LabelLayer else {
 			return


		opaque = false

		layoutManager.addTextContainer(textContainer)

		textContainer.lineFragmentPadding = 0

		lastDrawnFinalizedText = finalizeText()

		UIGraphicsPushContext(context)
		defer { UIGraphicsPopContext() }

		let textContainerOrigin = originForTextContainer()
		let glyphRange = layoutManager.glyphRangeForTextContainer(textContainer)
		layoutManager.drawBackgroundForGlyphRange(glyphRange, atPoint: textContainerOrigin)
		layoutManager.drawGlyphsForGlyphRange(glyphRange, atPoint: textContainerOrigin)
	}


