В настоящее время возникают некоторые проблемы с макетом потока при использовании представления коллекции на iPad.В настоящее время я занимаюсь разработкой приложения, которое отображает посты в потоковом макете, делая его красивым и гладким.Однако при тестировании приложения на всех устройствах я заметил, что дисплей меняется на:
- iPad 5-го поколения
- iPad Air
- iPad Air 2
- iPad Pro (9,7 дюйма)
А вот на остальных iPad'ах он отображается правильно.В чем здесь проблема?В настоящее время я использую этот код для стилизации своего макета внутри CollectionView:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
switch UIDevice().screenType {
case .iPhoneX:
return CGSize(width: 180.0, height: 180.0)
break
case .iPhone5:
return CGSize(width: 152.0, height: 152.0)
break
case .iPhone6:
return CGSize(width: 180.0, height: 180.0)
break
case .iPhone6Plus:
return CGSize(width: 200.0, height: 200.0)
break
case .iPad:
return CGSize(width: 400.0, height: 400.0)
break
case .iPadTwo:
return CGSize(width: 400.0, height: 400.0)
break
case .iPadThree:
return CGSize(width: 400.0, height: 400.0)
break
default:
return CGSize(width: 200.0, height: 200.0)
break
}
}
«iPad Two» и «iPad Three» - это просто перечисления, которые я пытался создать, пытаясь определить тип iPad и, еслиЯ получил вывод на печать некоторого текста (но он просто падает по умолчанию), независимо от iPad.
И это мои размеры экрана:
switch UIScreen.main.nativeBounds.height {
case 960:
return .iPhone4
case 1136:
return .iPhone5
case 1334:
return .iPhone6
case 2208:
return .iPhone6Plus
case 1024:
return .iPad
case 1366:
return .iPadTwo
case 834:
return .iPadThree
case 2436:
return .iPhoneX
break
default:
return .unknown
}
А вот визуальное представлениемоей проблемы, возникающей на перечисленных устройствах, но не на остальных:
Как это должно выглядеть:
Как это выглядит на перечисленных устройствах:
Я был бы очень признателен за помощь, если кто-то может помочь мне решить эту проблему, так как я не могупохоже, нашел правильное решение.