2013-08-22 7 views
9

Gdy wpis o statusie jest zbyt długi, aplikacja Facebook tnie tekst i dodaje na końcu "Czytaj dalej". Skąd wie, gdzie wyciąć tekst i dodać "... Continue Reading"?Jak dodać przycisk na końcu tekstu, np. "Kontynuuj czytanie" na Facebooku?

Nie tylko dodawanie przycisku do textView lub etykiety, ale jak wyciąć ciąg. Na poniższym obrazku ograniczam na przykład liczbę linii do 7. Mogę po prostu umieścić przycisk w prawym dolnym rogu textView lub etykiety, ale może on nakładać się na niektóre znaki.

enter image description here

+1

sobie wyobrazić, że po prostu ma limit znaków w tekście podglądu. Jeśli tekst przekroczy ten limit, odcina go i dodaje "... Kontynuuj czytanie". Jeśli chcesz uniknąć odcięcia słowa, po prostu szukaj ostatniego wystąpienia spacji (spacji) przed limitem znaków. –

+0

@ParisNelson Używam tego , aby uzyskać ciąg tekstowy o ograniczonej długości tekstu. Więc zrób to, co powiedziałeś. Czy to ma sens? –

+0

@ParisNelson Spróbuj opisać rzeczywiste rozwiązanie, a nie tylko opis wysokiego poziomu tego, co widzisz. Nie ma "limitu znaków" na UILabel, ani nie automagicznie dodać klikalny tekst z ładnym stylu, który mówi "Kontynuuj czytanie". –

Odpowiedz

2

To powinno pomóc :)

NSString *str=self.strQuestionTitle; 

CGRect rect=CGRectMake(51, 16, 257, 0); 

CGSize size=[str sizeWithFont:self.lblQuestion.font constrainedToSize:CGSizeMake(257, 3000) lineBreakMode:self.lblQuestion.lineBreakMode]; 
int lines=(size.height/self.lblQuestion.font.pointSize); 
self.lblQuestion.numberOfLines=lines; 
rect.size=size; 
if(lines>2) 
{ 
    if(lines==3 &&[str length]>66) 
    { 
     str=[str substringToIndex:66]; 
    str=[str stringByAppendingString:@"...Read More"]; 
    size=[str sizeWithFont:self.lblQuestion.font constrainedToSize:CGSizeMake(257, 67) lineBreakMode:self.lblQuestion.lineBreakMode]; 

    int lines=(size.height/self.lblQuestion.font.pointSize); 
    self.lblQuestion.numberOfLines=lines; 

    rect.size=CGSizeMake(257, 67); 
    } 
    else if(lines>3) 
    { 
     str=[str stringByAppendingString:@"...Read More"]; 
     size=[str sizeWithFont:self.lblQuestion.font constrainedToSize:CGSizeMake(257, 67) lineBreakMode:self.lblQuestion.lineBreakMode 


       ]; 

     int lines=(size.height/self.lblQuestion.font.pointSize); 
     self.lblQuestion.numberOfLines=lines; 

     rect.size=CGSizeMake(257, 67); 
    } 

    //self.lblQuestion.lineBreakMode=NSLineBreakByTruncatingHead; 
} 
Powiązane problemy