调整核心文本选项卡的宽度

时间:2011-01-13 19:47:14

标签: objective-c cocoa core-text

我对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的值,我可以调整选项卡的宽度,但这仅适用于之后创建的第一个选项卡,它会重置为相对较小的不同宽度。

为什么要这样做?

1 个答案:

答案 0 :(得分:2)

我认为问题是所有标签都是使用完全相同的位置创建的。每一个应该是80的倍数,而不是80。