2011-04-14 24 views
5

kCTParagraphStyleSpecifierParagraphSpacing stili uygulandığında, işlenen metne görsel bir etkisi yoktur. Çizgi aralığı ve metin hizalama gibi diğer özellikler mükemmel çalışır. Ne yanlış yapabilirdim?NSAttributedString kCTParagraphStyleSpecifierParagraphSpacing'in etkisi yoktur

CTTextAlignment theAlignment = kCTRightTextAlignment; 
CGFloat paragraphSpacingFloat = 150.0; 
CGFloat paragraphSpacingBeforeFloat = 150.0; 
CGFloat lineSpacing = CTFontGetLeading(baseFont)*5.0; 

CFIndex theNumberOfSettings = 4; 
CTParagraphStyleSetting theSettings[4] = { 
    { kCTParagraphStyleSpecifierParagraphSpacing, sizeof(CGFloat), &paragraphSpacingFloat }, 
    { kCTParagraphStyleSpecifierParagraphSpacingBefore, sizeof(CGFloat), &paragraphSpacingBeforeFloat }, 
    { kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), &theAlignment }, 
    { kCTParagraphStyleSpecifierLineSpacing, sizeof(CGFloat), &lineSpacing } 
}; 

CTParagraphStyleRef theParagraphRef = CTParagraphStyleCreate(theSettings, theNumberOfSettings); 
[attr addAttribute:(id)kCTParagraphStyleAttributeName value:(id)theParagraphRef range:r]; 
[attr addAttribute:(id)kCTFontAttributeName value:(id)baseFont range:r]; 
CFRelease(theParagraphRef); 

benim için

CTFrameSetter frameSetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attr); 
CTFrameRef frame = CTFramesetterCreateFrame(frameSetter, CFRangeMake([[attr string] length], 0), the_drawing_cgrect, NULL); 
CTFrameDraw(frame, context); 

cevap

4

Dizenizin paragraf ayırıcıları olduğundan emin misiniz? kCTParagraphStyleSpecifierParagraphSpacing yeni hatlarda çalışmıyor. Gerçek gerektirir \ u2029.

paragraf ayırıcılar ile tüm yeni satır değiştirmek için bu kodu deneyin:

NSArray *paragraphs = [string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; 
NSString *text = [items componentsJoinedByString:@"\u2029"]; 
+0

İlginç! Eminim sorun buydu, teşekkürler! O zamandan beri, bu sorunu çözmedim, farklı bir şekilde çözdüm. –

+0

@blago - nasıl blago çözdünüz? –

İlgili konular