0

Мне удалось изменить размер ячейки коллекцииView, используя приведенную ниже функцию, но как я могу заставить эту функцию работать с разным размером экрана. так, например, я хочу, чтобы высота и ширина будет отличаться от IPad, что iPhone есть способ сделать этоизменить UICollectionView Размер ячейки в зависимости от размера экрана

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
      let width = UIScreen.main.bounds.width 
      let height = UIScreen.main.bounds.height 
      return CGSize(width: (width/5.5), height: (height/4.5)) 

     } 
+0

Yo может установить что-то вроде точки разрыва в зависимости от значений высоты/ширины, что означает, если вы x количество вертикального/горизонтального пространства, то используйте возврат с разными значениями. –

ответ

3

его легко обнаружить размер экрана, для каждого & любого размера экрана iPhone/IPad. Просто следуй этому.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize 
{ 

     if UIDevice().userInterfaceIdiom == .phone 
      { 
       switch UIScreen.main.nativeBounds.height 
       { 
       case 480: 
        print("iPhone Classic") 
       case 960: 
        print("iPhone 4 or 4S") 

       case 1136: 
        print("iPhone 5 or 5S or 5C") 

       case 1334: 
        print("iPhone 6 or 6S") 
       case 2208: 
        print("iPhone 6+ or 6S+") 
       default: 
        print("unknown") 
       } 
      } 

      if UIDevice().userInterfaceIdiom == .pad 
      { 
       if (UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad && 
        (UIScreen.main.bounds.size.height == 1366 || UIScreen.main.bounds.size.width == 1366)) 
       { 
        print("iPad Pro : 12.9 inch") 
       } 
       else if (UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad && 
        (UIScreen.main.bounds.size.height == 1024 || UIScreen.main.bounds.size.width == 1024)) 
      { 
        print("iPad 2") 
        print("iPad Pro : 9.7 inch") 
        print("iPad Air/iPad Air 2") 
        print("iPad Retina") 
      } 
      else 
      { 
        print("iPad 3") 
      } 
     } 

} 

Так что используйте это, чтобы установить высоту & ширину в соответствии с вашими требованиями. Даже вы можете выполнить/установить макет для определенного экрана.

Надеюсь, это поможет вам.