2012-10-26 18 views
0

獲取顯示在視圖中的NSString部分。給定文本的多少部分將以給定大小顯示

或者

要獲得可顯示在給定的CGRect NSString的。

它返回視圖上顯示的字符串(UIlabel,UITextFiled等)。 當大字符串和視圖的字符串不足以顯示整個字符串時,這非常有用。

所以我寫了代碼並將其添加到此處。

回答

0
//If you want the string displayed in any given rect, use the following code.. 
@implementation NSString (displayedString) 

//font- font of the text to be displayed 
//size - Size in which we are displaying the text 

-(NSString *) displayedString:(CGSize)size font:(UIFont *)font 
{ 
NSString *written = @""; 

int i = 0; 
int currentWidth = 0; 
NSString *nextSetOfString = @""; 

while (1) 
{ 
    NSRange range; 
    range.location = i; 
    range.length = 1; 

    NSString *nextChar = [self substringWithRange:range]; 
    nextSetOfString = [nextSetOfString stringByAppendingString:nextChar]; 

    CGSize requiredSize = [nextSetOfString sizeWithFont:font constrainedToSize:CGSizeMake(NSIntegerMax, NSIntegerMax)]; 
    currentWidth = requiredSize.width; 

    if(size.width >= currentWidth && size.height >= requiredSize.height) 
    { 
     written = [written stringByAppendingString:nextChar]; 
    } 
    else 
    { 
     break; 
    } 
    i++; 
} 


    return written; 
} 

@end 
相關問題