簡體   English   中英

UICollectionView單元格的動態高度

[英]Dynamic Height for UICollectionView Cell

在此處輸入圖片說明 這是我第一次嘗試以編程方式創建collectionView。 我使用了一些教程來了解我現在的位置,它是一個帶有textView和imageView的Facebook / LinkedIn式布局。 當有圖像時它們看起來很棒,但是我不知道如何在沒有圖像時動態減小單元的高度。 我知道我目前的固定高度為500,但這是我的第一次嘗試,不確定如何設置它以進行動態調整。

我已經看過很多Obj-C的例子,但是對於Swift卻一無所知。

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

        if let textContent = dataSource.posts[indexPath.item].textContent {
            let rect = NSString(string: textContent).boundingRectWithSize(CGSizeMake(view.frame.width, 1000), options: NSStringDrawingOptions.UsesFontLeading.union(NSStringDrawingOptions.UsesLineFragmentOrigin), attributes: [NSFontAttributeName:UIFont.systemFontOfSize(14)], context: nil)

            return CGSizeMake(view.frame.width, rect.height + 370)
        }

        return CGSizeMake(view.frame.width, 500)
    }
}

我的垂直視覺布局約束(使用擴展名創建):

 addContstraintsWithFormat("V:|-8-[v0(44)]-4-[v1]-4-[v2][v3(44)][v4(1)][v5(44)]|", views: profileImg, postTextView, postImageView, likesCommentsLabel, dividerLineView, likeButton)

sizeForItemAtIndexPath是集合視圖委托函數之一,您可以在其中設置每個單元格的高度。 在此委托中,只需添加一個條件即可。您可以在其中檢查單元格是否具有圖像,並使用CGSizeMake根據該設置的高度

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM