UIFont sizeWithFont によって返されるものに基づいて UILabels フレームを設定していますが、何らかの理由でカスタム フォントを使用すると、以下に示すように返される値にパディングが含まれます。
boldSystemFontOfSizeを使用すると、テキストは中央に垂直に配置されます (これが必要です) が、fontWithNameを使用すると、テキストの下にパディングが表示されます。sizeWithFontがパディングに追加されている理由はありますか?
これが私のコードです...
CGRect frameLabel = label.frame;
CGSize sizeLabel = [label.text sizeWithFont:label.font];
frameLabel.size.width = sizeLabel.width;
frameLabel.size.height = sizeLabel.height;
[label setBackgroundColor:[UIColor redColor]];
** 編集 **
このコードを使用して上部と下部のパディングを計算し、ラベルframe.origin.yを調整して、ラベルが必要な場所で垂直方向に中央揃えにすることができます
float topPadding = [label.font ascender] - [label.font capHeight];
float bottomPadding = [label.font lineHeight] - [label.font ascender];