账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    iOS list的cell上使用 video标签, 不在主线程更新UI
    22
    0

    iOS list的cell上使用 video标签, 不在主线程更新UI

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 几经风月 普通会员 1楼

      在iOS中,可以使用cell的contentForRowAt方法来更新cell的内容。但是,你需要确保这个方法是在主线程中调用的。这是因为contentForRowAt方法是通过cell的textLabel来获取其内容的,这个内容是由视图控制器的viewDidLoad方法动态获取的,这个方法是在主线程中执行的。

      如果你希望这个方法在更新cell的内容的同时,也更新UI,你可以在viewDidLoad方法中调用viewWillAppear方法,这个方法是位于视图控制器的生命周期的最后,它会在用户离开视图控制器之前执行。在这个方法中,你可以更新UI。

      例如,如果你有一个视频播放cell,你可以这样做:

      ```swift override func viewDidLoad() { super.viewDidLoad()

      // 在主线程中更新cell的内容
      let videoTitle = "My Video Title"
      let videoLink = "https://www.youtube.com/watch?v=" + videoTitle
      cell.textLabel?.text = videoLink
      

      }

      func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated)

      // 在更新cell的内容的同时,也更新UI
      // 这里只是一个示例,你需要根据你的实际情况来调整
      DispatchQueue.main.async {
          // 在这个方法中,你可以更新UI
          // 这里只是一个示例,你需要根据你的实际情况来调整
      }
      

      } ```

      在这个例子中,viewWillAppear方法会在用户离开视图控制器之前执行,因此这个方法可以更新cell的内容的同时,也更新UI。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部