изображение внутри collectionViewCell изменяет положение

Я работаю с UICollectionView. Я пробую загружать изображения (Уже я этого добился), и когда я загружаю вид, впервые совсем пойди совершенно, но когда я возвращаюсь в поле зрения предыдущий и вновь вхожу в CollectionView изображения переделались.

Первый груз:

introducir la descripción de la imagen aquí

Второй Груз:

introducir la descripción de la imagen aquí

Это код меня CollectionViewCell:

class PhotoCollectionViewCell: UICollectionViewCell {

@IBOutlet weak var label: UILabel!
@IBOutlet weak var photo: UIImageView!{
    didSet {

        photo.contentMode = UIViewContentMode.ScaleAspectFill//ScaleToFill//ScaleAspectFit//ScaleToFill
        photo.clipsToBounds = true

    }
}

}

И часть, где я загружаю мои изображения:

 override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! PhotoCollectionViewCell
    let seccion = items[indexPath.row]

    // Configure the cell
    cell.backgroundColor = UIColor.redColor()
    cell.label.text = String(indexPath.row)

    let imageURL = NSURL( string: seccion.value! as! String)
    cell.photo.sd_setImageWithURL(imageURL)
 return cell}

И расположение UIImageview:

introducir la descripción de la imagen aquí

Я добавляю следующее, если я делаю что-то плохим в определении размера ячеек:

 func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    let width = (collectionView.frame.size.width / 3)-10
    let heigth = width
    return CGSizeMake(width, heigth)
}

// En viewDidLoad.
    collectionView!.contentInset = UIEdgeInsets(top: 5, left: 0, bottom: 10, right: 0)

Изданный 16-sept-2016

Добавив какие-то другие изображения я увидел, что изменение размера UIImageView он "временный", переделывается, дав scroll.

introducir la descripción de la imagen aquí

ИЗДАННЫЙ 17-Septiembre-2016

Хорошо, искали где-то здесь и там я добился, чтобы оно функционировало, но остаюсь, не понимая.

Я добавил меня CollectionViewCell:

    override func layoutIfNeeded() {
    super.layoutIfNeeded()

}

И в моем классе CollectionView внутри collectionView(...cellForItemAtIndexPath) -> UICollectionViewCell

После let cell = collectionView.dequeueReusa.... я добавил:

cell.setNeedsLayout()

Эта линия безразличная, функционирует равно будьте или не будьте. Почему?.

    cell.layoutIfNeeded()

и вещь функционирует, сейчас мои изображения загружаются правильно, однако давайте забывать о том, что я сделал предыдущее, и давайте переходить в часть, где я загружаю мои данные, и давайте добавлять:

self.collectionView?.layoutIfNeeded()

После:

self.collectionView?.reloadData()

И также функционируй. Почему оно функционирует? и: которое из обоих решений лучшая?

1
задан 30.12.2016, 18:32
1 ответ

Размер ячейки - descartable, которым ячейка продолжает иметь тот же размер, я верю в то, что проблема эта в аспекте изображения, как доказательство ты мог бы перемещать то, что ты делаешь в didSet в конфигурацию ячейки или прямо в графическую схему. Достаточно возможно, что, войдя во второй раз, он не входит хорошо в didSet и тебя не брал хорошо contentMode изображения

0
ответ дан 24.11.2019, 13:22
  • 1
    Изначально, что у меня есть didSet, это у него было в configuraci и # 243; n ячейки. и уже я попытался с различными типами ViewContentMode и во всех тенденция состоит в том, что он пробегает изображение к нижней части и рядом, право. Я начинаю думать, что это должен быть какой-то вид вуду или иметь источник, чуждый этой реальности. – Víctor Gonzal 16.09.2016, 21:57

Теги

Похожие вопросы