瀏覽代碼

correctly resize collectionview cells on different devices

Carola Nitz 9 年之前
父節點
當前提交
2f079e32c3
共有 1 個文件被更改,包括 11 次插入4 次删除
  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