在表格视图单元格上自动滚动到下一行不起作用Swift

问题描述

我最近可能使用avplayer开发了一个音乐播放器流应用程序。情况是,我有一个带有自动播放功能的歌曲列表的表格视图,其中,首先,用户需要从表格视图中选择歌曲,只要当前歌曲结束,表格视图就会自动滚动并突出显示到下一个单元格。这是我在AVPlayerItemDidplayToEndTime委托函数中的操作方式:

let indexPosition = IndexPath(row: MusicPlayerManager.shared.latestIndex,section: 0)
self.tableView.scrollToRow(at: indexPosition,at: .none,animated: true)
self.tableView.selectRow(at: indexPosition,animated: true,scrollPosition: .none)

其中MusicPlayerManager.shared.latestIndex是当前单元格索引。一切都可以正常运行。

为供您参考,我已将AVPlayer声明为全局变量(单音),以允许音乐在任何页面(视图控制器)中播放,如下所示:

final class MusicPlayerManager {
    static let shared = MusicPlayerManager()
    private init() { }

    var player: AVPlayer!
    var latestIndex = 0
    var playlistFrame = Playlist()
}

所有操作仍然正常,在这里我可以暂停,停止,播放,自动播放和其他功能

当前正在播放歌曲时会发生这种情况和问题,然后我导航到其他 ViewControllers ,然后回到我的 MusicViewController (主vc),然后自动滚动并突出显示(选择行)不再起作用。播放器仍然照常运行,没有问题。仅在表视图上的问题MusicViewController是我的主视图控制器,其中所有的表视图和音乐播放器都在那里。如果我停留在MusicViewController页面上而没有导航到其他控制器,则一切正常。

要使自动滚动工作,我需要重新开始流程,在此流程中,我需要从表格视图中选择音乐列表。

  1. 我使用segue导航到其他页面,每次我回到MusicViewController页面时,都会调用viewdidload()
  2. 我将所有列表音乐加载到viewdidload()中的tableview中。已经尝试在viewdid内部显示,但仍然无法正常工作
  3. 对不起,我英语不好。因为英语不是我的母语。谢谢

我需要至少了解这种行为的原因。我尝试使用按钮手动执行功能scrollToRowselectRow,它很好用。只是无法自动代码上工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)