集合视图单元格垂直顶部对齐

时间:2019-07-05 10:16:45

标签: swift iphone xcode uicollectionview uicollectionviewcell

我在集合视图(网格格式)单元格高度中有问题。网格格式总共包含两列,因此基本上每行有2个单元格。我的收藏夹视图单元格高度根据其中的内容而增加,但是内容居中对齐而不是顶部对齐。我想在具有更大高度的行中实现单元格的高度。我怎样才能做到这一点?请指教。

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 :(得分:0)

口头解决:

  1. 在您的收集单元xib中,不要在容器视图上指定UILabel。
  2. 将UIView置于具有(top:0,lead:0,trail:0,bottom:0)约束的容器视图的最底层。
  3. 现在将UILabel置于约束条件(top:0,lead:0,trail:0,height:<= UIView)
  4. 这有助于您根据标签的内容调整标签高度,从而有助于将标签对齐固定在顶部。