【问题标题】:Youtube/Instagram comments style in UILabelUILabel 中的 Youtube/Instagram 评论风格
【发布时间】:2015-09-02 15:14:41
【问题描述】:

我正在尝试在我的 iOS 应用程序中实现类似 Youtube/Instagram 的评论风格,或者更具体地说 - 一个标签,该标签的用户名在标签的开头具有不同的颜色,然后是其余内容,并且内容可以在用户名下方放置行。例如:

USERNAME(with different color)  this is the comment content,
and it can drop lines like that.

我已经设法使用NSMutableAttributedString 实现了这一点,但是由于我的应用程序支持具有不同书写方向的多种语言,因此出现了非常严重的故障。
如何在UILabel 中实现这种风格?谢谢!

【问题讨论】:

    标签: ios objective-c string swift uilabel


    【解决方案1】:

    NSAttributedString 设置为UILabel

    您可以将特定字体/颜色等设置为NSAttributedString 内的特定字符范围

    【讨论】:

    • 正如我所提到的,我确实尝试过,但由于我的应用支持不同的语言和不同的书写方向,这种方法会出现故障。
    • 如果您正确实施它就不会出现故障 - 只需要有关此“故障”的更多详细信息
    • 如果我将我的标签对齐方式设置为从左到右,例如,在英语中它会很好,就像这样:USERNAME content content 但在从右到左的语言看起来像 content content USERNAME,这看起来很错误。我需要它统一。
    【解决方案2】:

    您可以尝试两种不同的标签。

    或者你可以使用下面的代码

     NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithAttributedString: label.attributedText];
    
    [text addAttribute:NSForegroundColorAttributeName 
                       value:[UIColor redColor] 
                       range:NSMakeRange(0, /*userNameLength*/)];
    
    [label setAttributedText:text];
    

    【讨论】:

    • 您可以创建两个差异。用户名(不同颜色和字体样式)和注释字符串的UILabel。
    • 是的,但是我将无法获得示例中显示的效果。
    猜你喜欢
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多