当前位置: 首页 > 面试题库 >

NSAttributedString插入项目符号点?

孔才
2023-03-14
问题内容

所以我有一个NSAttributedString我想bullet point在一部分文本的开头插入一个。我怎样才能做到这一点?CTPAragraphStyle显示文字时,如何创建一个创建该项目符号的点?

编辑:* 应该在 iOS 上可用 *


问题答案:

简单一点:[mutableAttributedString insertAttributedString:@“•\ t” atIndex:0];

难点。遵循以下内容。(这是从一个较大的项目中摘录的,但可能会为您提供一个不错的开始。)

NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"•\texample bullet fill out the text to check what happens on the second line and make sure it is lining up OK"];

CTTextAlignment alignment = kCTLeftTextAlignment;
CGFloat paragraphSpacing = 0.0;
CGFloat paragraphSpacingBefore = 0.0;
CGFloat firstLineHeadIndent = 15.0;
CGFloat headIndent = 30.0;

CGFloat firstTabStop = 15.0; // width of your indent
CGFloat lineSpacing = 0.45;

CTTextTabRef tabArray[] = { CTTextTabCreate(0, firstTabStop, NULL) };

CFArrayRef tabStops = CFArrayCreate( kCFAllocatorDefault, (const void**) tabArray, 1, &kCFTypeArrayCallBacks );
CFRelease(tabArray[0]);

CTParagraphStyleSetting altSettings[] = 
{
    { kCTParagraphStyleSpecifierLineSpacing, sizeof(CGFloat), &lineSpacing},
    { kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), &alignment},
    { kCTParagraphStyleSpecifierFirstLineHeadIndent, sizeof(CGFloat), &firstLineHeadIndent},
    { kCTParagraphStyleSpecifierHeadIndent, sizeof(CGFloat), &headIndent},
    { kCTParagraphStyleSpecifierTabStops, sizeof(CFArrayRef), &tabStops},
    { kCTParagraphStyleSpecifierParagraphSpacing, sizeof(CGFloat), &paragraphSpacing},
    { kCTParagraphStyleSpecifierParagraphSpacingBefore, sizeof(CGFloat), &paragraphSpacingBefore}
};

CTParagraphStyleRef style;
style = CTParagraphStyleCreate( altSettings, sizeof(altSettings) / sizeof(CTParagraphStyleSetting) );

if ( style == NULL )
{
    NSLog(@"*** Unable To Create CTParagraphStyle in apply paragraph formatting" );
    return;
}

[string addAttributes:[NSDictionary dictionaryWithObjectsAndKeys:(NSObject*)style,(NSString*) kCTParagraphStyleAttributeName, nil] range:NSMakeRange(0,[string length])];

CFRelease(tabStops);
CFRelease(style);

您需要包括CoreText框架,然后导入CoreText / CoreText.h



 类似资料:
  • 本文向大家介绍Markdown 项目符号列表,包括了Markdown 项目符号列表的使用技巧和注意事项,需要的朋友参考一下 示例 项目符号列表的字符: 星号 加号 减号 请注意: 为了获得最佳效果,您必须使用相同的字符,因为在下面的示例中可以看到,不同的符号使列表中断 项目符号列表的字符: 星号1 星号2 星号3 加号1 加号2 加号3 减号1 减号2 减号3

  • 问题内容: 是的,我知道元组是不可变的,但是这种情况使得我需要在每个元组中插入一个额外的值。因此,其中一项是金额,我需要在其旁边添加其他货币的新项目,如下所示: 可能? 谢谢! 问题答案: 您可以将其转换为列表,插入项目,然后将其转换回元组。

  • 我的插入符号包有问题,请查看下面的错误, 错误:Dyn.load(file,DLLpath=DLLpath,...)中“cert”的包或命名空间加载失败:无法加载共享对象“/library/framework/R.framework/versions/4.0/resources/library/rcpp/libs/rcpp.so”:dlopen(/library/framework/R.frame

  • 问题内容: 我想控制子弹在或中向右推动多少水平空间。 也就是说,不是总有 我希望能够将其更改为 要么 问题答案: 将其内容放在相对位置的,然后可以通过的属性控制空间。

  • 注意: Adobe Muse 不再添加新增功能,并将于 2020 年 3 月 26 日停止支持。有关详细信息和帮助,请参阅 Adobe Muse 服务结束页面。 在 Adobe Muse 中,可以将一组段落在文本框架内排列为项目符号列表或编号列表。通常,列表是相关项目的集合,比如团队的队员、任务的步骤等等。列表可以包含另一个列表,此类列表成为嵌套或多级列表。 可以使用“项目符号”面板创建有层次的项

  • 问题内容: 是否有可能格式化在显示一个 圆点 ? 如果是这样,我该怎么办? 问题答案: 也许对字符串中的项目符号字符使用Unicode代码点? 目标c 斯威夫特4