多くのオブジェクトを含むカスタムのUICollectionViewCell
がありますが、全体的にデータベースに接続し、保存された画像のURLを取得し、各写真を追加することによってUIImageView
を入力する必要があります(写真の数は任意です - 1から10まで)をUIStackView
に設定します。UICollectionViewの動的セルの高さ
ここでは、セルの高さがハードコードされていることを除いてすべてが得られます。したがって、機能しません。私はどのようにサイズを取得するか分からない。ここに私のコードです。
これは、高さがハードコードされている場所です。
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
{
let width = collectionView.bounds.width
let size = CGSize(width: width, height: 800)
return size
}
これはUIImageView
が設定されている場所です。 photoURLs
は、データベースからダウンロードしたURLの配列です。
if let photoURLString = post?.photoURLs
{
for urlString in photoURLString
{
let photoURL = URL(string: urlString)
let imageView = UIImageView()
imageView.sd_setImage(with: photoURL)
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
imageView.widthAnchor.constraint(equalTo: postImagesStackView.widthAnchor)
postImagesStackView.addArrangedSubview(imageView)
postImagesStackView.layoutIfNeeded()
}
}
また、各写真の間に少しのスペースを残す方法はありますか? 1ポイントと同じですか?
あなたのプログラムの出力は何を? – 3stud1ant3
質問が正しく理解されているかどうかわかりません。セルの出力を求めている場合は、同じセルに最大10枚の画像を入れることができます。私はそれを行う最善の方法は 'UIStackView'を使用し、単に' addArrangedSubview(uiview) 'メソッドを使って各画像を追加することだと言われました。現在、高さは固定されており、固定された高さしか表示されません。私は何とかすべての画像の高さを計算し、セルの高さを設定し、同じセルを再利用する必要があります。 – Dani