Обрезать текст в 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 ответ
Я полагаю, что вы используете частный API Three20, который может быть отклонен из магазина приложений. Просто проверьте один раз перед загрузкой. В общем, вы можете установить любой набор любой пользовательской кнопки с настройкой заголовка на нем
[кнопка setContentHor HorizontalAlignment:UIControlContentHor horizontalAlignmentLeft]; [кнопка setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 10.0, 0.0, 0.0)]; - Эта строка может быть использована для расчета краев заголовка. Надеюсь, поможет.