2010-09-07 2 views
4

В моем проекте используется TTStyledTextLabel, чтобы разобрать гиперссылки, все работает отлично. Единственная проблема, с которой я столкнулся, состоит в том, чтобы усечь длинный текст - показать эллипсы, если текст не подходит в пределах TTStyledTextLabel.Усекать текст в TTStyledTextLabel

Другими словами, мне нужно то же поведение, что и UILabel, который добавляет эллипсы, чтобы указать, что некоторый текст обрезается. Я искал в классах TTStyledTextLabel и TTStyledText, для этого не существует положений. Ниже приведен код, который я использовал в моем UITableViewCell подкласса установить рамку TTStyledTextLabel соответствующим образом:

-(void) layoutSubviews 
{ 
    [super layoutSubviews]; 
. 
. 
. 
    CGSize maxSize = CGSizeMake(self.contentView.frame.size.width -TEXT_OFFSET_WIDTH, TT_TEXT_MAX_HEIGHT); 
    [[[self textLabelTTStyled] text] setWidth:maxSize.width]; 
    [[self textLabelTTStyled] sizeToFit]; 
    double heigthForTTLabel = [[[self textLabelTTStyled] text] height]; 
    if (heigthForTTLabel > maxSize.height) 
     heigthForTTLabel = maxSize.height; // Do not exceed the maximum height for the TTStyledTextLabel. 
**// The Text was supposed to clip here when maximum height is set!** 
    CGSize mTempSize = CGSizeMake([[[self textLabelTTStyled] text] width], heigthForTTLabel); 
    CGRect frame = CGRectMake(TEXT_OFFSET_X,TEXT_OFFSET_Y,mTempSize.width, mTempSize.height); 
    self.textLabelTTStyled.frame = frame; 
. 
. 
. 
} 

И в tableView:cellForRowAtIndexPath: я устанавливаю текст, как это мой TTStyledTextLabel:

TTStyledText *styledStatusMessage = [TTStyledText textFromXHTML:@"This is a really long text, how long can this go on? This is a really long text, how long can this go on? This is a really long text, how long can this go on? This is a really long text, how long can this go on? This is a really long text, how long can this go on? This is a really long text, how long can this go on?" 
    lineBreaks:YES URLs:YES]; 

if (nil == styledStatusMessage) { 
    styledStatusMessage = [TTStyledText textWithURLs:[statusMessage title] lineBreaks:YES]; 
    [[cell textLabelTTStyled] setText:styledStatusMessage]; 
} 

чрезмерный текст просто отбрасывается, эллипсы по умолчанию не добавляются, чтобы указать, что текст обрезается. Любые решения этой проблемы?

Спасибо, Радж

ответ

-1

Я считаю, что вы используете частный апи Three20 который, имеющий возможность Уф отказ от проверки appstore.Just один раз, прежде чем загрузить. Genrally вы можете установить любой набор любой настраиваемой кнопки с указанием заголовка на нем

[кнопка setContentHorizontalAlignment: UIControlContentHorizontalAlignmentLeft]; [кнопка setTitleEdgeInsets: UIEdgeInsetsMake (0.0, 10.0, 0.0, 0.0)]; - Эта строка может использоваться для установки краев заголовков. Надеюсь, поможет.

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