我創建了自定義UITableViewCell
,每個單元格都從UITableViewController
傳遞了AVPlayer
對象的自定義子類。在每個單元上我都有一個播放按鈕,暫停按鈕和加載指示器。自定義UITableViewCell作爲委託 - UI元素意外重複使用
當我播放音頻時,元素根據需要工作,並在播放器狀態發生變化時更改。播放時,出現暫停按鈕,播放按鈕消失。當我在第二個單元上播放音頻時,第一個單元知道這一點,將其重置爲按鈕狀態,而第二個單元確實是業務。
所以這個功能很完美,唯一的問題是因爲UITableViewCell
被重用,當我向下滾動到下面的單元格時,我開始看到它們上面出現暫停按鈕。這是因爲它們與上面(重用)的單元格相同,並且由於我的單元格是AVPlayer
的自定義子類的代表,因此音頻播放器正在將消息發送到不正確的單元格。
我可以做些什麼來使每個UITableViewCell
爲我的AVPlayer
單獨的委託對象?
UITableViewCell實際上有一個方法_called_ prepareForReuse,這將是一個很好的準備重用的地方。 – jrturton
雅,但你不得不繼承UITableViewCell做到這一點.. – Snowman
準備重用的問題是,因爲單元格正在重用,他們在內存中共享相同的點,所以當設置單元格作爲委託時,它指向到tableview中的多個單元格。我解決了我的問題,請檢查我的答案。 – Wasim