Итак, у меня есть список песен, и когда я нажимаю на кнопку more, отображается SongDetailCell и вызывается функция setPlayPauseOnAppeaering()
для выбранной песни.
Эта функция либо устанавливает воспроизведение, либо приостанавливаетзначок в зависимости от оператора if.По какой-то причине значок паузы не отображается, хотя печатаются правильные журналы консоли.Например, когда «играет с spotify sample» , кнопка не устанавливается на паузу, даже если она определенно должна быть.Кто-нибудь знает, что я здесь делаю не так.
class SongList: UICollectionViewCell {
@objc func moreButtonTap(gesture: UITapGestureRecognizer) {
var indexPath = getIndexPathFromRecognizer(gesture: gesture)
let songDetailView = SongDetailCell()
let song = self.songsArray[indexPath.item]
songDetailView.song = song
songDetailView.setPlayPauseOnAppearing()
}
}
class SongDetailCell: UICollectionViewCell {
var song: Song!
let playPauseButton: UIButton = {
let button = UIButton()
button.setImage(UIImage(named: "play-button-large"), for: .normal)
button.translatesAutoresizingMaskIntoConstraints = false
button.tintColor = UIColor.brandBlack()
button.contentMode = .scaleToFill
return button
}()
func setPlayPauseOnAppearing() {
func setPlayButton() {
playPauseButton.setImage(UIImage(named: "play-button-large")?.withRenderingMode(.alwaysTemplate), for: .normal)
}
func setPauseButton() {
playPauseButton.setImage(UIImage(named: "pause-button-large")?.withRenderingMode(.alwaysTemplate), for: .normal)
}
if SongPlayer.shared.doesPreviewExist(spotifyPreviewUrl: spotifyURL, iTunesPreviewUrl: itunesURL) {
if SongPlayer.shared.player.timeControlStatus == .paused {
if SongPlayer.shared.previewUrl == spotifyURL {
setPlayButton()
print("paused with Spotify sample")
} else if SongPlayer.shared.previewUrl == itunesURL {
setPlayButton()
print("paused with iTunes sample")
}
} else if SongPlayer.shared.player.timeControlStatus == .playing {
if SongPlayer.shared.previewUrl == spotifyURL {
setPauseButton()
print("playing with Spotify sample")
} else if SongPlayer.shared.previewUrl == itunesURL {
setPauseButton()
print("playing with iTunes sample")
}
} else {
print("no audio sample")
}
}
}
}