2017-01-27 7 views
1

AVPlayerLayerをセルスペースを埋めるようにしようとしていますが、フレームプロパティを設定するとサイズが変更されません。私uitableviewcontrollerファイルに続いてAVPlayerLayerがセルの境界にサイズを変更していません

override init(style: UITableViewCellStyle, reuseIdentifier: String?) { 
    super.init(style: style, reuseIdentifier: reuseIdentifier) 


    let videoURL = NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4") 
    let player = AVPlayer(url: videoURL! as URL) 
    let playerLayer = AVPlayerLayer(player: player) 
    playerLayer.frame = contentView.bounds; 
    contentView.layer.addSublayer(playerLayer) 
    player.play() 
} 

:私のカスタムセルファイルで

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCell(withIdentifier: "clipHomeCells", for: indexPath) as! ClipTableViewCell 
    // Configure the cell... 
    return cell 
} 

しかし、それは次のようになります。

enter image description here

答えて

0

CALayerオブジェクトはしないでください彼らはビューを満たすために自動的にサイズを変更するそれが伸びるまで伸びる。したがって、レイヤーには最初に与えたフレームと同じフレームが残ります。セルレイアウトが自動レイアウトまたはheightForRow(at:)デリゲートメソッドのために後で変更された場合、CALayerフレームは一致するように更新されません。

私が過去にこの問題を処理したのは、を管理するUITableViewCellのカスタムサブクラスを作成し、layoutSubviews()に適切にサイズを変更することです。

+0

@wtfislifeこの回答はあなたのために機能しましたか? –

関連する問題