2017-01-02 45 views
-1

增加的空間,我想使這種類型的格式,以字NSString安排上UILabel如何安排這類格式的NSString字沒有的UILabel

enter image description here

,但我儘量讓添加額外的空白空間根據上面的字長度,但另一種方式來使這種類型的格式假設使用NSAttributesString

+0

使用Alt鍵在xib/sto的UILabel Text屬性中輸入新行和Alt + Tab ryboard。並且將Line屬性更改爲0. – Shreyank

+0

@Shreyank我想以編程方式安排這種格式 – Keyur

+1

'lblName.text = @「FirstLine \ n \ tSecondLine \ n \ t \ tThirdLine」;'只要這樣做。 – Shreyank

回答

2

您可以使用NSMutableAttributedString來做到這一點,而無需添加額外的空白。

首先,創建一個返回NSMutableAttributedString喜歡這個 -

-(NSMutableAttributedString*)setIndent:(NSString*) title value:(CGFloat) value { 
    NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; 
    style.alignment = NSTextAlignmentLeft; 
    style.firstLineHeadIndent = value; 

    NSMutableAttributedString *attrText = [[NSMutableAttributedString alloc] initWithString:title attributes:@{ NSParagraphStyleAttributeName : style}]; 
    return attrText; 
} 

的方法,並通過以下方式使用此方法 -

NSString *title = @"Charlie Chapline Cartoon"; 

    NSArray* foo = [title componentsSeparatedByString: @" "]; 
    NSMutableAttributedString *attrText5 = [[NSMutableAttributedString alloc] init]; 
    CGFloat value = 0.0f; 
    for(int i = 0; i< foo.count; i++){ 
     //change this value according to your need. 
     value = value + 20.0f; 
     [attrText5 appendAttributedString:[self setIndent:[NSString stringWithFormat:@"%@\n", foo[i]] value:value]]; 
    } 

    _myLab.numberOfLines = 5; 
    _myLab.attributedText = attrText5; 

輸出:

enter image description here

+0

感謝您給出答案,我嘗試在單詞之前添加動態空間謝謝 – Keyur

相關問題