【问题标题】:TTTAttributedLabel clickable truncation tokenTTTAttributedLabel 可点击的截断标记
【发布时间】:2015-06-16 03:40:17
【问题描述】:

我有一个 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) 个字符可以!

【问题讨论】:

  • 我也面临同样的问题。截断的文本不可点击,而是点击了最后几个字符。你解决了这个问题吗,如果是,请告诉我。
  • 不,我什至没有尝试。我刚刚使用 CoreText、UIButton 和委托实现了我自己的笨拙标签。如果可能,请使用更新版本的 TTTAttributedLabel。
  • 在较新的版本中我也面临同样的问题。有时如果截断的标记位于结束表行中,则它是可点击的。但如果出现在行之间,则它不起作用跨度>

标签: ios uilabel tttattributedlabel


【解决方案1】:

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];

【讨论】:

  • 我试过ResponsiveLabel,在演示项目中,我在展开表格视图中的标签时遇到了非常奇怪的滚动问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 2015-09-19
  • 1970-01-01
相关资源
最近更新 更多