我对Core Text相当新,但是一直很好,但是我无法调整标签的宽度。
目前我正在使用我通过查看文档和邮件列表编写的代码:
CFIndex theNumberOfSettings = 1;
CFIndex i = 0;
CTTextTabRef tabArray[1];
CTTextAlignment align = 0;
CGFloat location = 80;
for (;i < 1; i++ ) {
tabArray[i] = CTTextTabCreate( align, location, NULL );
}
CFArrayRef tabStops = CFArrayCreate( kCFAllocatorDefault, (const void**) tabArray, 1, &kCFTypeArrayCallBacks );
for (;i < 1; i++ ) { CFRelease( tabArray[i] ); }
CTParagraphStyleSetting theSettings[1] =
{
{ kCTParagraphStyleSpecifierTabStops, sizeof(CFArrayRef), &tabStops },
};
CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(theSettings, theNumberOfSettings);
[self.attributedString addAttribute:(NSString *)kCTParagraphStyleAttributeName
value:(id)paragraphStyle
range:range];
通过设置location
的值,我可以调整选项卡的宽度,但这仅适用于之后创建的第一个选项卡,它会重置为相对较小的不同宽度。
为什么要这样做?
答案 0 :(得分:2)
我认为问题是所有标签都是使用完全相同的位置创建的。每一个应该是80的倍数,而不是80。