【问题标题】:Remove one part from AttributedText in UILabel从 UILabel 中的 AttributedText 中删除一部分
【发布时间】:2017-07-27 19:12:35
【问题描述】:

我有一个UILabel,它的属性文本集类似于

早上好\n亚历克斯

它在UILabel 中显示为 2 行。我想展示这个,几秒钟后删除早上好部分,只展示 Alex 部分。

这可能吗? 请帮帮我

【问题讨论】:

    标签: ios swift3 uilabel nsmutableattributedstring


    【解决方案1】:

    您可以创建一个NSTimer - Documentation 秒数,在该计时器触发后,您只需更改UILabel 的文本

    textLabel.attributedText = "Alex"

    NSTimer的完成块内部

    【讨论】:

      【解决方案2】:

      你可以使用 GCD

      let delayInSeconds = 4.0
      DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delayInSeconds) {
      
           textLabel.attributedText = "Alex"
      
      
       }
      

      【讨论】:

        【解决方案3】:

        使用此功能并传递您的延迟并更新属性文本:-

        func delay(_ delay: Double, closure: @escaping () -> Void) {
                DispatchQueue.main.asyncAfter(
                    deadline: DispatchTime.now() + Double(Int64(delay * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: closure)
            }
        
        func updateAttributedText() {
          delay(1) { 
           self.textLabel.attributedText = NSAttributed(string: "Alex")
          }
        }
        

        【讨论】:

        • self.textLabel.attributedText = "Alex" 该行应该至少显示一个警告(如果不是崩溃),因为您正在分配一个字符串,您应该在其中分配一个 NSAttributedString。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-22
        • 1970-01-01
        • 1970-01-01
        • 2013-01-09
        • 1970-01-01
        • 2018-11-20
        • 2014-02-15
        相关资源
        最近更新 更多