diff --git a/kplayer/detail/DetailViewController.swift b/kplayer/detail/DetailViewController.swift index 0aa2ced..f795a10 100644 --- a/kplayer/detail/DetailViewController.swift +++ b/kplayer/detail/DetailViewController.swift @@ -6,12 +6,6 @@ // Copyright (c) 2015 Marco Schmickler. All rights reserved. // -import UIKit -import Alamofire -import FileBrowser -import AVFoundation -import ZIPFoundation -import SwiftUI import UIKit import Alamofire import FileBrowser @@ -35,6 +29,7 @@ class DetailViewController: UIViewController, UICollectionViewDelegateFlowLayout var showFavoritesOnly = false var collectionView: UICollectionView! + private var lastCollectionViewSize: CGSize = .zero var currentItem: MediaItem? @@ -73,7 +68,7 @@ class DetailViewController: UIViewController, UICollectionViewDelegateFlowLayout layout.itemSize = defaultItemSize layout.headerReferenceSize = CGSize(width: 50, height: 50) - collectionView = UICollectionView(frame: view.frame, collectionViewLayout: layout) + collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout) collectionView.dataSource = self collectionView.delegate = self @@ -84,8 +79,13 @@ class DetailViewController: UIViewController, UICollectionViewDelegateFlowLayout collectionView.dragDelegate = self view.addSubview(collectionView) - view.autoresizesSubviews = true - collectionView.autoresizingMask = [UIView.AutoresizingMask.flexibleWidth, UIView.AutoresizingMask.flexibleHeight] + collectionView.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + collectionView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor), + collectionView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor), + collectionView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), + collectionView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor) + ]) // Do any additional setup after loading the view, typically from a nib. collectionView.reloadData() @@ -112,6 +112,14 @@ class DetailViewController: UIViewController, UICollectionViewDelegateFlowLayout } } + override func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + + guard collectionView.bounds.size != lastCollectionViewSize else { return } + lastCollectionViewSize = collectionView.bounds.size + collectionView.collectionViewLayout.invalidateLayout() + } + @objc func switchMode() { mode = !mode if let b = modeButton { @@ -452,4 +460,3 @@ class DetailViewController: UIViewController, UICollectionViewDelegateFlowLayout collectionView.reloadData() } } -