Вертикальное выравнивание верхней части ячейки представления коллекции - PullRequest
0 голосов
/ 05 июля 2019

У меня проблема с высотой ячейки в виде коллекции (формат сетки). Формат сетки содержит всего два столбца, поэтому в основном по две ячейки в каждой строке. Высота ячейки моей коллекции увеличивается в зависимости от содержимого внутри нее, но содержимое выравнивается по центру, а не по верху. Я хочу достичь высоты ячеек в ряду, которая имеет большую высоту. Как я могу это сделать? Пожалуйста посоветуй.

https://drive.google.com/file/d/0B56cE4V6JI-RYmdQT2pIZ0hYQ2phM3Z2YmJNYU1SeXNnYTNN/view?usp=sharing https://drive.google.com/file/d/0B56cE4V6JI-RQUdqVmV4b244cFI5SGd2TnJfbG1tckdQU21Z/view?usp=sharing https://drive.google.com/file/d/0B56cE4V6JI-RYTYxVzJyVUp1clpJTkVqYjN6QXBPeERvVHZR/view?usp=sharing

Я добавил ссылку выше, которая сейчас является проблемой.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
    {
        let cellsAcross: CGFloat = 2
        let spaceBetweenCells: CGFloat = 10
        let dim = (collectionView.bounds.width - (cellsAcross - 1) * spaceBetweenCells) / cellsAcross
        print(dim) // calculating width
        //calculating my content height
        let toppingHeight = sizeOfString(string: PizzaMenuItems[indexPath.row].pizzaToppings, constrainedToWidth: Double(dim))
        let pizzaNameHeight = sizeOfString(string: PizzaMenuItems[indexPath.row].menuName, constrainedToWidth: Double(dim))
        let newHeight = toppingHeight.height + pizzaNameHeight.height + 57
        // to increase my collection view height
        let heightt = (view.frame.width)/2
        let count = self.PizzaMenuItems.count
        if self.PizzaMenuItems.count == 1 {
        }
        else{
            if count % 2 == 0
            { //even Number
                collectionViewC_Height.constant =  heightt  *  CGFloat(self.PizzaMenuItems.count/2) + 57
            }  else
            {  // odd Number
                collectionViewC_Height.constant =  heightt  *  CGFloat(self.PizzaMenuItems.count/2+1)}
        }
        return CGSize(width: dim, height:  newHeight)}

1 Ответ

0 голосов
/ 05 июля 2019

Устное словосочетание:

  1. В xib ячейки вашей коллекции не указывайте UILabel в представлении контейнера.
  2. Поместите UIView в нижний слой представления контейнера с ограничениями (top: 0, lead: 0, trail: 0, bottom: 0).
  3. Теперь поместите вашу UILabel с ограничениями (top: 0, lead: 0, trail: 0, height: <= UIView) </li>
  4. Это поможет вам отрегулировать высоту этикетки в соответствии с их содержимым, что поможет закрепить выравнивание этикетки сверху.
...