在Objective c中两行文本的末尾添加一个链接/ UI按钮

Posted

技术标签:

【中文标题】在Objective c中两行文本的末尾添加一个链接/ UI按钮【英文标题】:Adding a link/UIbutton at the end of two lines of text in Objective c 【发布时间】:2012-08-23 11:27:48 【问题描述】:

我有一长串可能适合 1 行或多行的文本。 我需要做的是显示前两行,如果文本比这更长 - 添加一个“更多”按钮/链接,该按钮/链接将指向另一个将显示全文的页面/视图控制器。

我正在考虑添加一个UILabel,计算文本大小,如果它太大 - 添加一个指向下一个控制器的 UIButton。

问题是: 1. 使用自动换行,行中的最后一个单词可能在行尾或行中间结束 - 我不知道在哪里放置“更多”UIButton。 2. 文本可能是 LTR 和 RTL,所以我不知道在哪里放置“更多”按钮(在左侧或右侧)。

有没有办法从UILabel 链接? 我应该使用UILabel + UIButton以外的东西吗?

任何建议将不胜感激。

谢谢!

LTR 示例:

Lorem ipsum dolor sit amet,consectetur adipiscing elit。纳拉 便利化... -MORE-

RTL 示例:

אם עוד אחרים בגרסה。 תנך יכול פולנית או , הארץ העברית על אנא, החלל ...-更多-

【问题讨论】:

【参考方案1】:

请尝试使用网络视图。要加载的 html 应该是:

Your short text here...<a href="moreurl">-MORE-</a>

并在 UIWebviewDelegate 中采用此方法

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
      NSURL *url = [request URL];
      if([[url absoluteString] isEqualToString:@"moreurl"])
     
        //change html string to full string (without more)
        [webView loadHTMLString:@"Your full text here." baseURL:nil];
     
      return YES;   

希望有所帮助:)

【讨论】:

【参考方案2】:

您也可以使用TTTAttributedLabel。它有一个非常有用的属性,叫做attributedTruncationToken

【讨论】:

以上是关于在Objective c中两行文本的末尾添加一个链接/ UI按钮的主要内容,如果未能解决你的问题,请参考以下文章

标题中有两行文本的 UIButton (numberOfLines=2)

使用 CSS 调整换行文本的大小 [重复]

How-to:绘制换行文本的两种方法

将文本插入到现有的大文件中

如何在 Swift 或 Objective C 中将文本添加到文件中?

在 UITextView Objective-C 内的文本末尾添加更多按钮?