2011-01-13 58 views
1

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

它为什么这样做?

回答

2

我会想象这个问题是所有的标签都是用完全相同的位置创建的。每个人可能应该是80的倍数,而不是正好80.

+0

这正是它是什么,非常感谢! – Joshua 2011-01-14 07:04:50