gpt4 book ai didi

iphone - 在子类中附加更多 CTParagraphStyleSetting

转载 作者:行者123 更新时间:2023-11-29 04:30:20 24 4
gpt4 key购买 nike

我有一个应用程序,我使用 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), &paragraphSpacing},
{kCTParagraphStyleSpecifierParagraphSpacingBefore, sizeof(CGFloat), &paragraphSpacingBefore}
};

CTParagraphStyleRef paragraphStyle2 = CTParagraphStyleCreate(paragraphSettings2, 5);
[self.text addAttribute:(NSString*)kCTParagraphStyleAttributeName value:(id)paragraphStyle2 range:NSMakeRange(0, [self.text.mutableString length])];
}

问题是它不起作用,因为第二组 CTParagraphStyleSetting 正在覆盖第一组。执行此操作的正确方法是什么,我已经尝试了很多方法,单独执行 paragraphStyles ,并将属性单独添加到 attributedString 中,但是不能'没有任何东西可以工作。

最佳答案

当您调用 super 时,您将已经将段落样式设置作为属性进行设置。再次获取相同的属性,使用这些设置构建新的段落样式,根据需要使用新值覆盖某些设置,最后将此新的段落样式设置为属性。

关于iphone - 在子类中附加更多 CTParagraphStyleSetting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11822436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com