Explorar o código

correctly resize collectionview cells on different devices

Carola Nitz %!s(int64=9) %!d(string=hai) anos
pai
achega
2f079e32c3
Modificáronse 1 ficheiros con 11 adicións e 4 borrados
  1. 11 4
      Sources/VLCLibraryViewController.m

+ 11 - 4
Sources/VLCLibraryViewController.m

@@ -781,10 +781,17 @@ static NSString *kUsingTableViewToShowData = @"UsingTableViewToShowData";
 
 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
 {
-    if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation))
-        return CGSizeMake(341., 190.);
-    else
-        return CGSizeMake(384., 216.);
+    const CGFloat maxCellWidth = 300.0;
+    const CGFloat aspectRatio = 9/16;
+
+    CGRect windowFrame = [UIApplication sharedApplication].keyWindow.frame;
+    CGFloat windowWidth = windowFrame.size.width;
+
+    int numberOfCellsPerRow = ceil(windowWidth/maxCellWidth);
+    CGFloat cellWidth = windowWidth/numberOfCellsPerRow;
+
+    return CGSizeMake(cellWidth, cellWidth * aspectRatio);
+
 }
 
 - (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section