2015-06-16 3 views
3

У меня есть TTTAttributedLabel и указанная пользовательский приписываемый маркер усечения для него:TTTAttributedLabel интерактивного усечение лексемы

NSAttributedString *atributedTruncationToken = [[[NSAttributedString alloc] 
                initWithString:@" More..." 
                 attributes:@{ 
                     NSForegroundColorAttributeName : [UIColor lightGrayColor], 
                     NSFontAttributeName : self.messageLabel.font, 
                     NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType // no effect 
                     }] autorelease]; 

    [self.messageLabel setAttributedTruncationToken:atributedTruncationToken]; 

Это выглядит идеально, но как я могу сделать маркер кликабельным?

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

ОБНОВЛЕНИЕ. Как я выяснил, что это возможно (IOS 7+), чтобы добавить ссылку на маркер, как и следующим образом: (?)

NSAttributedString *atributedTruncationToken = [[[NSAttributedString alloc] 
                initWithString:@" More..." 
                 attributes:@{ 
                     NSForegroundColorAttributeName : [UIColor lightGrayColor], 
                     NSFontAttributeName : self.messageLabel.font, 
                     NSLinkAttributeName : [NSURL URLWithString:@"..."] 
                     }] autorelease]; 

Но есть своего рода ошибка в этикетке TTTAttributed, что токен до сих пор не стал кликабельным, но n (n = token length) последних символов текста ярлыка сделайте!

+0

Я также сталкиваюсь с той же проблемой. Усеченный текст не кликается, а последние несколько символов нажимаются. Вы решаете эту проблему, если да, пожалуйста, дайте мне знать. – Aditya

+0

Нет, я даже не пытался. Я только что реализовал свой собственный неуклюжий ярлык, используя CoreText, UIButton и делегат. Если это возможно, используйте новую версию TTTAttributedLabel. –

+1

в новой версии также я сталкиваюсь с той же проблемой. Иногда она доступна, если усеченный токен находится в конце таблицы row.but, если он находится между строк, то он не работает – Aditya

ответ

0

ResponsiveLabel, подкласс UILabel может использоваться для настройки маркера с кликируемым усечением.

NSString *expansionToken = @"Read More ..."; 
NSString *str = @"Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."; 
NSMutableAttributedString *attribString = [[NSMutableAttributedString alloc]initWithString:kExpansionToken attributes:@{NSForegroundColorAttributeName:[UIColor blueColor],NSFontAttributeName:self.customLabel.font}]; 
[self.customLabel setAttributedTruncationToken:attribString withAction:^(NSString *tappedString) { 
    NSLog(@"Tap on truncation text"); 
}]; 
[self.customLabel setText:str withTruncation:YES]; 
+0

Я попробовал [ResponsiveLabel] (https: //github.com/hsusmita/ResponsiveLabel/), и в демонстрационном проекте у меня очень странные проблемы с прокруткой при расширении метки в виде таблицы. – Performat

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