2017-01-17 2 views
7

Я пытаюсь добиться Pinterest макета в моем приложенииUICollectionView высота динамической ячейки (Pinterest раскладка)

и я использовал следующий метод делегата для достижения этой цели и установить высоту ячейки динамически

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    let boundingRect = CGRect(x: 0, y: 0, width: self.view.frame.size.width/2 - 20, height: CGFloat(MAXFLOAT)) 
    let data = articles[indexPath.row] 
    let rect = AVMakeRect(aspectRatio: (data.coverImage?.size)!, insideRect: boundingRect) 
    return CGSize(width: rect.width, height: rect.height + 120) // Added 120 for a description I will add later 
} 

Но Я получил следующий результат:

Here

серый фон фон ячейки, вы можете увидеть й в каждой ячейке есть собственная высота (как и ожидалось) , но есть дополнительные пробелы, которые я не знаю, как их удалить.

Как это исправить?

+0

Никто не пробовал? Почему нет ответа? – adev

ответ

0

Ваш UICollectionView макет неправильный. Удалите расстояние между ячейками и расстояние между столбцами либо от раскадровки, либо с помощью метода CollectionViewDelegateFlowLayout.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { 
    return CGFloat()// Your Value 
} 

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { 
    return CGFloat()// Your Value 
    } 
Смежные вопросы