2011-02-07 2 views
1

У меня есть UITextView, отображающий статус facebook, загруженный из Facebook Connect. Я пытаюсь сделать так, чтобы UITextView просто создавал предварительный просмотр текста. Я хочу, чтобы он выглядел так, как будто слишком много текста для UILabel. Это будет нечто вроде «Слишком много текста ...» с точками, но UITextViews этого не делают. Кто-нибудь знает, как заставить его работать?UITextView как отрезать текст

ответ

3

Напишите отдельный метод, который подсчитывает, сколько букв есть в строке, и если есть несколько заданных значений, затем разрежьте его и добавьте три точки до конца.

Кроме того, рассмотрите возможность использования UILabels вместо UITextViews, если вам не нужно редактировать информацию внутри, поскольку UITextViews занимает больше времени для выделения и инициализации и, как правило, медленнее, чем UILabels.

0
+(NSString *)getTruncatedTextForString:(NSString *)inputString withFont:(UIFont *)font withLength:(int)textViewlength 
{ 

    CGSize dotSize=[@"..." sizeWithFont:font]; 
    float dotWidth=dotSize.width; 
    NSString *[email protected]""; 

    int reqLength=textViewlength-dotWidth; 

    for(int i=0;i<inputString.length;i++) 
    { 

     NSString *tempStr=[outputString stringByAppendingString:[inputString substringWithRange:NSMakeRange(i,1)]]; 

     if([tempStr sizeWithFont:font].width>reqLength) 
     { 
      break; 
     } 
     else 
     { 
      outputString=tempStr; 
     } 
    } 
    NSString *tempStr=[outputString stringByAppendingString:@"..."]; 
    outputString=tempStr; 
    return outputString; 
} 
0

Пробуйте приведенный ниже код. Он отобразит две точки в текстовое окно с текстом больше, чем его высота кадра.

if(textview.contentSize.height > textview.frame.size.height) 
{ 

    while (textview.contentSize.height > textview.frame.size.height) 
    { 
     textview.text = [textview.text substringWithRange:NSMakeRange(0, textview.text.length-1)]; 
    } 
    textview.text = [textview.text substringWithRange:NSMakeRange(0, textview.text.length-2)]; 
    textview.text= [NSString stringWithFormat:@"%@..",textview.text]; 
} 

Он работает только тогда, когда мы устанавливаем правильную высоту в UITextview относительно шрифта и FontSize этого TextView.
Для экс, если шрифт полужирный система шрифт размер 16 средств, высота TextView должна быть минимальной 30.

+0

Сбои при копировании вставить этот – Kevin

+0

@Kevin, ваша высота TextView должна быть минимум некоторой высоты WRT ваш текстовый шрифт, например, если шрифт полужирный шрифт системы размером 16 означает, высота вашего текста должна быть не менее 30 – NAZIK

+0

@Kevin, каков размер шрифта, который вы используете для текстового просмотра? – NAZIK

Смежные вопросы