高さが固有のコンテンツ サイズに基づいて、行が増えると高くなるように、自動レイアウトで UILabel を設定しました。同じビュー内の他の要素と一緒に中央に配置する必要があります。すべてがデフォルトで、問題なく動作します。
ただし、少しスペースが多すぎるカスタム フォントを使用しています。次のように、NSMutableParagraphStyle を設定しました。
NSMutableParagraphStyle *headlineParagraphStyle = [NSMutableParagraphStyle new];
headlineParagraphStyle.lineSpacing = 0.0f;
headlineParagraphStyle.maximumLineHeight = 20.0f;
headlineParagraphStyle.hyphenationFactor = 0.0f;
headlineParagraphStyle.alignment = NSTextAlignmentLeft;
次に、UILabel として NSAttributedString を作成して設定します-attributedText
。
NSString *uppercaseHeadline = self.currentStory.headline.uppercaseString;
NSAttributedString *attributedHeadline = [[NSAttributedString alloc] initWithString:uppercaseHeadline attributes:@{NSParagraphStyleAttributeName: headlineParagraphStyle}];
self.headlineLabel.attributedText = attributedHeadline;
その結果、テキストは問題ないように見えますが、ラベルの下部にはまだ余分なスペースがありますが、UILabel の上部に押し込まれ、上部が切り取られています。
これにより、このラベルのテキストに対する他の項目の中央揃えも外れます。これは、2 つの行の間のスペースがラベルのフレームの中央と一致していないことがわかるからです。
上部がクリップせず、下部にスペースがないように、UILabel にこのテキストを再センタリングするように指示するにはどうすればよいですか?