         return (CGFloat(typographicWidth), offsetX, offsetY, ctline)
     }
 
+    private func fillBackgroundColor(rect: CGRect, on context: CGContext?) {
+        guard let context = context else {
+            return
+        }
+        guard let backgroundColor = self.attributedText.backgroundColor else {
+            return
+        }
+        backgroundColor.setFill()
+        CGContextFillRect(context, rect)
+    }
+
     /**
      与えられた全ての行を描画する
 

            return
        }
        let y = self.getDrawOffsetY()
        CGContextSetTextMatrix(context, CGAffineTransformMakeScale(1, -1)) // 反転を戻す
        lines.forEach { _, offsetX, offsetY, ctline in
            CGContextSetTextPosition(context, offsetX, offsetY + y)

        kerningRegexp: NSRegularExpression? = KernLabelKerningMode.Normal.regexp,
        numberOfLines: Int = 0,
        options: NSStringDrawingOptions = .UsesLineFragmentOrigin,
        padding: UIEdgeInsets = UIEdgeInsetsZero,
        truncateText: String = "...",
        verticalAlignment: KernLabelVerticalAlignment = .Top) {
        self.attributedText = NSMutableAttributedString(attributedString: attributedText).kerning(kerningRegexp)
        self.typesetter = CTTypesetterCreateWithAttributedString(self.attributedText)
        self.font = self.attributedText.font
