ich eine gridlist haben, die wie folgtwie man Größe Zelle in gridview
class ListViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout{
private var collection: ACollection?
private var collectionViewLayout:UICollectionViewFlowLayout?
override func loadView() {
super.loadView()
collectionViewLayout = UICollectionViewFlowLayout()
collectionViewLayout?.itemSize.width = 128
collectionViewLayout?.itemSize.height = 227
view = UICollectionView(frame: CGRect.zero, collectionViewLayout: collectionViewLayout!)
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let someObj: SomeObj = collection!.getObject(index: indexPath.item)
let cell: UICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: NSStringFromClass(UICollectionViewCell.self), for: indexPath as IndexPath)
let cellView: UIImageView = UIImageView(image: object.image)
cellView.frame = cell.bounds
cell.contentView.addSubview(cellView)
return cell
}
sieht würde ich meine Zellen mag verschiedene Seitenverhältnisse haben einen Wert in someObj obwohl abhängig. Wie kann ich die Größe der Zellen ändern, ohne dass sie sich überschneiden? Ich habe versucht,
cellView.frame = CGRect(x:0,y:0,width:100,height:300)
cellView.frame =cell.bounds
zu machen, aber die Zellen überlappen.
Ich glaube, Sie sollten 'collectionView (, layout: sizeForItemAt:)' -Funktion in der 'UICollectionViewDelegateFlowLayout' implementieren, da es so aussieht, als ob Sie das Flow-Layout verwenden. – sCha
@sCha Das funktioniert etwas. Was ich sehe ist, dass, wenn ich die Größe ändere, es eine Zelle mit der alten Größe zeichnet, dann eine andere oben mit der neuen Größe – user2175783