0
こんにちはダイナミックセルの高さを設定しようとしています。ダイナミックセルの高さを設定するにはどうすればよいですか?
は、ここに私のUICollectionViewCell
import UIKit
import Parse
import ActiveLabel
class UserShopDetailCell: UICollectionViewCell {
@IBOutlet weak var postImg: UIImageView!
@IBOutlet weak var likesLbl: UILabel!
@IBOutlet weak var usernameLbl: UILabel!
@IBOutlet weak var commentLbl: ActiveLabel!
@IBOutlet weak var descriptionLbl: ActiveLabel!
@IBOutlet weak var profileImg: UIImageView!
@IBOutlet weak var timeLbl: UILabel!
@IBOutlet weak var descriptionTop: NSLayoutConstraint!
@IBOutlet weak var commentTop: NSLayoutConstraint!
@IBOutlet weak var timeTop: NSLayoutConstraint!
override func awakeFromNib() {
}
}
あり、それはあるcollectionviewcontroller
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
let cellsAcross: CGFloat = 3
let spaceBetweenCells: CGFloat = 1
let dim = (collectionView.bounds.width - (cellsAcross - 1) * spaceBetweenCells)/cellsAcross
var width = 114.0
if(isGridView==true){
return CGSize(width: 114, height: 114)
}
else {
//I want set dynamic height...not constant values
return CGSize(width: 375, height: 500)
}
}
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if isGridView == false {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "UserShopDetailCell", for: indexPath) as! UserShopDetailCell
... ..... ......
let basicHeight = cell.frame.size.width + 23 + cell.usernameLbl.frame.height + 1 + cell.likesLbl.frame.height
let bottomHeight = cell.timeTop.constant + cell.timeLbl.frame.height + 12
var dynamicHeight = basicHeight + bottomHeight
cell.frame.size.height = dynamicHeight
cell.sizeToFit()
cell.sizeThatFits(CGSize(width: 375, height: dynamicHeight))
cell.contentView.sizeThatFits(CGSize(width: 375, height: dynamicHeight))
return cell
}
}
ご覧のとおり、空白は500高さ - 動的高さです。
最終的にセルの高さを動的な高さの値から設定します。
しかし、CGSizeを設定すると、CGSizeより大きい場合に動的高さが機能しません。
どのようにこの問題を解決できますか?
お返事ありがとうございます私はどのように迅速に使用するのですか? –