/ / change UICollectionView Tamanho da célula dependendo do tamanho da tela - ios, swift, uicollectionview, uicollectionviewcell, uicollectionviewlayout

altere o tamanho da célula UICollectionView dependendo do tamanho da tela - ios, swift, uicollectionview, uicollectionviewcell, uicollectionviewlayout

Eu era capaz de mudar o tamanho da célula collectionViewusando a função abaixo, mas como posso fazer esta função funciona com tamanho de tela diferente. por exemplo, eu quero que a altura e a largura sejam diferentes no iPad que o iPhone tem uma maneira de fazer isso

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))

}

Respostas:

5 para resposta № 1

É fácil de detectar o tamanho da tela, para cada tamanho de tela do iPhone / iPad. Apenas siga estas coisas.

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")
}
}

}

Então use isso para definir a altura e largura conforme suas necessidades. Mesmo você pode executar / definir layout para uma tela específica.

Espero que ajude você.