【问题标题】:More button in UILabel like in AppStore any app descriptionUILabel 中的更多按钮,如 AppStore 中的任何应用程序描述
【发布时间】:2013-06-13 09:28:11
【问题描述】:

我有一个 myObject 的描述,并在 UILabel 中显示。如果描述太长,我想将“更多”按钮添加到我的UILabel。在 Github 上我找到了TTTAttributedLabel,它允许使用超链接。问题是,UILabelUITextView 中是否有一些特殊功能可以解决我的问题,或者我必须使用 TTTAttributedLabel

【问题讨论】:

    标签: iphone ios objective-c uilabel


    【解决方案1】:

    最好的选择当然是使用TTTAttributedLabel

    UILabelUITextView 仅用于显示静态文本。没有添加可点击元素的方法。

    作为替代方案,在我倾向于TTTAttributedLabel 之前,我只是在我的UILabel 上放置了一个带有自定义样式的UIButton。该按钮是不可见的,但仍会响应轻按。不过,这对静态文本最有效,因为按钮需要正确放置在界面上以覆盖文本的正确部分。

    【讨论】:

    • 嗨 c.cam108 我使用了 TTTAttributedLabel 并且当我设置 [label setTruncationTokenString:@"... MORE"];它没有显示在标签上。应该是什么问题?
    • @BhavikKama 您是否设法在您的字符串上获得更多。我正在努力得到它。你能帮帮我吗?
    • 抱歉,我从未以这种方式使用过TTTAttribtedLabel - 我会手动截断字符串并创建带有超链接的“MORE”文本,然后允许我手动更改显示的文本。
    【解决方案2】:

    TTTAtributtedLabel 很容易在末尾添加“更多”文本。

    您有truncationTokenStringtruncationTokenStringAttributes。超级简单!

    例子:

    [label setTruncationTokenString:@"... MORE"];
    

    https://github.com/mattt/TTTAttributedLabel

    文档:http://cocoadocs.org/docsets/TTTAttributedLabel/1.8.0/Classes/TTTAttributedLabel.html#//api/name/truncationTokenString

    在我的情况下,我不再需要任何东西,因为我只是在选择单元格以使其生长时更改numberOfLines

    【讨论】:

      【解决方案3】:

      你可以试试 Swift 写的第三个库ExpandableLable

      将 UILabel 的自定义类设置为 ExpandableLabel 并设置所需的行数和折叠文本:

      expandableLabel.numberOfLines = 5
      expandableLabel.collapsedAttributedLink = NSAttributedString(string: "more")
      expandableLabel.ellipsis = NSAttributedString(string: "...")
      // update label expand or collapse state
      expandableLabel.collapsed = true
      

      您可能需要设置delegate 以在链接被触摸时收到通知。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      相关资源
      最近更新 更多