我有一個包含全寬UIImageView
的單元格,並且我創建了一個AVPlayerLayer
以播放內聯視頻。這個工作幾乎完美,唯一的問題是,當它被添加到previewImage
圖像視圖時,它是一個完美顯示的全寬圖像視圖,它在左側和右側有1 px的間隔。所以當視頻播放的時候,你可以真正注意到它,這很刺耳。將AVPlayerLayer添加爲子圖層並不完全填充父視圖
我設置它像這樣:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: false)
let cell = tableView.cellForRow(at: indexPath) as! GameMediaCell
if (cell.playerLayer != nil) {
cell.playerLayer?.player?.pause()
cell.playerLayer?.removeFromSuperlayer()
cell.playerLayer = nil
} else {
if let clipURI = viewModel?.mediaURIForIndex(indexPath.row) {
let player = AVPlayer(url: clipURI)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = cell.previewImage.frame
cell.previewImage.layer.addSublayer(playerLayer)
cell.playerLayer = playerLayer
playerLayer.player?.play()
}
}
}
我發現這個有一天某個地方,這是正確的答案。應該回答我自己的問題,所以我會接受這個。謝啦 :) – user1898712