2013-08-13 22 views
5

NSAttributedString kullanarak, aşağıdaki gibi bir üçgen içinde metin oluşturmaya çalıştım; NSLineBreakByWordWrapping neden kelime ayırır?

http://postimg.org/image/rp9fukgaj/

I tanımlanan şekil içine uygun metin için "NSLineBreakByWordWrapping" yöntemi kullanılır. Ama metnin ilk kelimesi bölündü ve bunun için bir çözüm bulamadım. Metnimin bölme yerine aşağıdaki satıra atlamasını istiyorum. Bunu nasıl yapabilirim?

Kullandığım kodun altında;

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.view.backgroundColor=[UIColor blackColor]; 
    CTFontRef fontRef = CTFontCreateWithName((CFStringRef)@"HelveticaNeue-Regular", 15.0f, NULL);  
    NSMutableParagraphStyle* paragraph = [NSMutableParagraphStyle new]; 
    paragraph.headIndent = 10; 
    paragraph.firstLineHeadIndent = 10; 
    paragraph.tailIndent = -10; 
    paragraph.lineBreakMode = NSLineBreakByWordWrapping; 
    paragraph.alignment = NSTextAlignmentCenter; 
    paragraph.paragraphSpacing = 15;  
    NSDictionary *attrDictionary = [NSDictionary dictionaryWithObjectsAndKeys: (__bridge id)fontRef, (NSString *)kCTFontAttributeName, (id)[[UIColor whiteColor] CGColor], (NSString *)(kCTForegroundColorAttributeName),paragraph,NSParagraphStyleAttributeName, nil];  
    CFRelease(fontRef); 
    NSAttributedString *attString = [[NSAttributedString alloc] initWithString:@"Initially, now I create the paragraph style and apply it to the first character. Note how the margins are dictated: the tailIndent is negative, to bring the right margin leftward, and the firstLineHeadIndent must be set separately, as the headIndent does not automatically apply to the first line." attributes:attrDictionary]; 
    [(CustomView *)[self view] setAttString:attString]; 
} 
+0

İlk sözcüğün uygun olmadığını bildiğinizden beri, her şeyi hareket ettirmek için bir paragraf sonu ile başlayın. Bunu yapmak için Metin Seti ile çizim yapabilir ve düzen yöneticisini geçersiz kılabilirsiniz (ya da tirelemesine izin verebilirsiniz). – matt

cevap

0

kelime belirli bir hat üzerinde sığmaz anlaşılan eğer NSLineBreakMode için documentation gözden geçiriyorum, kelime sığdırmak için kırılmış alacak. Metniniz statikse, üçgenin ilk bölümünü atlamak için muhtemelen yeni satır karakteri ekleyebilirsiniz. Aksi takdirde, bu sınırlamanın nasıl üstesinden gelineceğini öğrenmek için akıllı olmanız gerekir.

+0

Yeni satır karakteri ekleyerek bu sorunun üstesinden geldim. Basit bir ilk kelime uzunluğu algoritması ile bu konuyu ele aldım. Bunun en iyi çözüm olmadığını biliyorum ama davamda çalıştı. Mesajımı cevapladığınız için teşekkürler. – serdarsenol