CoreText
ライブラリを使用してテキストをフォーマットするアプリがあります。以下を使用してスタイル設定を設定します。
- (void) setAttributes
{
CTTextAlignment alignment = self.alignment;
CGFloat spacing = self.spacing;
CTParagraphStyleSetting paragraphSettings[] =
{
{kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), &alignment},
{kCTParagraphStyleSpecifierLineSpacing, sizeof(CGFloat), &spacing},
};
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(paragraphSettings, 2);
[self.text addAttribute:(NSString*)kCTParagraphStyleAttributeName value:(id)paragraphStyle range:NSMakeRange(0, [self.text.mutableString length])];
}
次に、段落スタイル設定を追加する必要があるいくつかの異なる機能を持つサブクラスがあります。
- (void) setAttributes
{
[super setAttributes];
CGFloat firstLineHeadIndent = 11, headIndent = 11, tailIndent = -11, paragraphSpacing = 0, paragraphSpacingBefore = 0;
CTParagraphStyleSetting paragraphSettings2[] =
{
{kCTParagraphStyleSpecifierFirstLineHeadIndent, sizeof(CGFloat), &firstLineHeadIndent},
{kCTParagraphStyleSpecifierHeadIndent, sizeof(CGFloat), &headIndent},
{kCTParagraphStyleSpecifierTailIndent, sizeof(CGFloat), &tailIndent},
{kCTParagraphStyleSpecifierParagraphSpacing, sizeof(CGFloat), ¶graphSpacing},
{kCTParagraphStyleSpecifierParagraphSpacingBefore, sizeof(CGFloat), ¶graphSpacingBefore}
};
CTParagraphStyleRef paragraphStyle2 = CTParagraphStyleCreate(paragraphSettings2, 5);
[self.text addAttribute:(NSString*)kCTParagraphStyleAttributeName value:(id)paragraphStyle2 range:NSMakeRange(0, [self.text.mutableString length])];
}
これの問題は、2 番目のセットがCTParagraphStyleSetting's
最初のセットを上書きしているため、機能しないことです。これを行う正しい方法は何でしょうか。私は多くのことを試し、paragraphStyles
個別に行い、属性を個別に に追加しましたがattributedString
、何も機能しません。