Как знать ширину collectionView в iOS, Xcode?

у меня есть collectionView, который занимает всю ширину экрана, как у меня хочет быть 10 колонн, у меня есть этот код:

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

Все в порядке, но я хотел бы, чтобы collectionView не занял всю ширину экрана, которая была более маленькой. Эта ширина не установлена в рисунке, но он изменится согласно устройству, в котором будет работать App. Это мое сомнение: как я получаю ширину collectionView?

0
задан 12.06.2019, 10:16
1 ответ

В Уполномочь тебя collection view у тебя есть один parГЎmetro collectionView в func collectionView (_ collectionView: UICollectionView... это показывает тебе, что уполномочь тебя, посылает тебя parГЎmetro настоящего collectionview. Ло Гєnico, которого ты должен делать, состоит в том, чтобы менять sizePantalla.width из-за collectionview.frame.width в тебе cГіdigo, asГ - ширину всегда dependerГЎ collectionview и не sizePantalla, cГіdigo quedarГ - во что-то asГ-:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    // calculando ancho 
    let ancho = collectionView.frame.width / CGFloat(10.0)
    // calculando alto (suponiendo que también quieres 10 renglones por pantalla)
    let alto = collectionView.frame. height / CGFloat(10.0)
    return CGSize(width: ancho, height: alto)

}
0
ответ дан 02.12.2019, 00:57