无法获取 UIImage 系统名称图像,以便在 SWIFT 5 中点击时更改它们



我是iOS编程新手,但我正在使用iOS 13和SWIFT 5来创建视频播放器。我正在尝试做的是在点击play.fill按钮后播放视频,然后在播放视频后,图像将变成pause.fill图像。目前,当我运行代码时,一切似乎在开始时都正常工作,但是当我按下播放按钮时,它不会更改为暂停图标。该图像仅保留为 play.fill 图像。我搞砸了属性检查器,并能够解决我遇到的其他一些问题,但现在我卡住了。我做错了什么?

import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var videoView: UIView!
var player: AVPlayer!
var playerLayer: AVPlayerLayer!
var isVideoPlaying = false
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://www.radiantmediaplayer.com/media/bbb-360p.mp4")!
player = AVPlayer(url: url)
playerLayer = AVPlayerLayer(player: player)
playerLayer.videoGravity = .resizeAspect
videoView.layer.addSublayer(playerLayer)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
playerLayer.frame = videoView.bounds
}
@IBAction func playPressed(_ sender: UIButton) {
if isVideoPlaying{
player.pause()
sender.setImage(UIImage(systemName: "play.fill"), for: .normal)
}else{
player.play()
sender.setImage(UIImage(systemName: "pause.fill"), for: .selected)
}
}
}

您正在更改.selected状态的图像:

sender.setImage(UIImage(systemName: "pause.fill"), for: .selected)

将其更改为.normal

sender.setImage(UIImage(systemName: "pause.fill"), for: .normal)

编辑

一个假设你在代码中的某个地方切换isVideoPlaying

最新更新