ヒラギノ角ゴフォント指定のUILabelの下が切れる問題を解決する方法

ヒラギノ角ゴ指定のUILableで"gpy"のアルファベットをテキストに指定すると、
gpy の下が切れて表示される。この問題を解決するために、CoreTextを使ってディセンダーの高さを計算し、UILabelのframeに足す。

/** ここにhogeLableがあるじゃろ... */
CTFontRef fontRef = CTFontCreateWithName((CFStringRef) hogeLable.font.fontName, hogeLabel.font.pointSize, NULL);
CGFloat descentHeight = ceilf(CTFontGetDescent(fontRef));
CFRelease(fontRef);

CGRect newFrame = hogeLabel.frame;
newFrame.size.height += descentHeight;
hogeLabel.frame = newFrame;

ceilf関数は、代入した値以上の最小の整数値を計算し返す。
CFRelease()でリリースしないとメモリリーク起こす。

2016年2月10日 追記

/** __bridge忘れ */
CTFontRef fontRef = CTFontCreateWithName((__bridge CFStringRef) hogeLable.font.fontName, hogeLabel.font.pointSize, NULL);