2015-10-21 3 views
1

Мои изображения не отображаются в моем UICollectionView. Я не уверен, в чем ошибки. Ниже мой код.Swift - изображение не отображается в моем UICollectionView

MyCollectionView.swift

/** -- **/ 

    overide func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
      let cell = collectionView.dequeueReusableCellWithReuseIdentifier("MyCollectionViewCell", forIndexPath: indexPath) as! MyCollectionViewCell 
      let event = events[indexPath.row] 

      cell.imageView?.image = UIImage(named: "[email protected]") 

      return cell 

     } 

/** -- **/ 

MyCollectionViewCell.swift

import UIKit 

class MyCollectionViewCell: UICollectionViewCell { 
    var imageView: UIImageView! 

    required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
    } 

    override init(frame: CGRect) { 
     super.init(frame: frame) 

     imageView = UIImageView(frame: CGRect(x: 0, y: 16, width: frame.size.width, height: frame.size.height)) 
     imageView.contentMode = UIViewContentMode.ScaleAspectFit 
     contentView.addSubview(imageView) 
    } 
} 

Даже я использую LocalPath, она по-прежнему не работает.

/* 
    /Users/MNurdin/Library/Developer/CoreSimulator/Devices/B30917DD-1C57-430F-9ACF-6526B226CF15/data/Containers/Data/Application/35ACB17A-4C25-4A49-BE3D-04AA51F36CC0/tmp/jreGfApABajWPCnkfPBh.jpg 
*/ 

cell.imageView?.image = UIImage(data: NSData(contentsOfURL: NSURL(fileURLWithPath:localPath)!)!) 

Прошу совета. Спасибо.

+0

Возможно ли, если я использую программный путь? –

+0

попробуйте ввести расширение изображения, например blabla_iPad.png или blabla_iPad.jpg или что бы то ни было расширение. – Skywalker

+0

Создан ли ваш MyCollectionViewCell с xib-файлом? Попробуйте создать imageView в awakeFromNib-методе, если вы создаете файл xib. В противном случае попробуйте создать imageView в initWithCoder: тоже – hiennv92

ответ

0
var imageView: UIImageView! 

Это должен быть IBOutlet.

@IBOutlet weak var imageView: UIImageView! 

И подключите его к раскадровке.

+2

hä? Он добавляет его как subview –

+0

, да, но с помощью IBOutlets это гораздо более чистое решение. Кроме того, если он это сделает, я подозреваю, что проблема будет решена. – dirtydanee

+1

нет действительно. Он добавлен как Subview, frame ist установлен. поэтому он должен появиться –

0

Его довольно головной скребок. Я не знаю точно, что случилось здесь, но вот несколько советов, которые я попробовать себя, чтобы найти Что происходит

После:

cell.imageView .image = UIImage (названный: «blabla_iPad @ 2x»)?

print(cell.imageView?.image.bounds.size) 
cell.imageView?.layer.borderWidth = 1.0 
cell.imageView?.layer.borderColor = UIColor.blackColor().CGColor 

и будет видеть один из этих вещей сейчас: 1. так же, как и раньше, это означает, что ур рисунок изображение вне клетки. попробуйте изменить рамку. 2. черный прямоугольник пустой квадрат: что-то не так с вашим изображением 3. рамка напечатана имеет нулевой размер. Назначьте рамку imageView равным границам изображения.

+0

Я попробую ваше решение. –

+0

не отображается ничего. –

+0

Каково значение рамки? то есть вывод печатной коробки? –

0
  • Вы уверены, что iamge в Xcassets или в верхней части bundle.Save ваш образ как "ImageName ~ ipad.png". Это просто идентификатор ios для использования этого изображения на i-Pad. Поместите изображение в Xcassets. Тогда все будет хорошо работать.

  • А также поместите некоторое сообщение журнала в свой собственный инициализатор класса ячеек, чтобы проверить поток управления, что-то не так с вашим пользовательским классом.

  • Вы зарегистрировали свой пользовательский класс для использования с этим идентификатором ячейки в viewDidLoad?

0

Вы упомянули, что вы загружаете свою камеру из раскадровки. При загрузке из раскадровки метод init (frame: CGRect) в вашем классе MyCollectionViewCell не будет вызван, что означает, что ваш код для добавления вашего пользовательского UIImageView в контентный контент ячейки никогда не будет вызван.

Следовательно, проблема заключается не в том, чтобы изображение не загружалось в UIImageView, а в том, что весь UIImageView не был полностью добавлен в ячейку.

Try перемещение, что в awakeFromNib() вместо

0

Я была такая же проблема. Только что произошло в xib-файлах, которые я открыл после переключения на Swift 3.Я отключил Clip To Bounds на любом UIImageView в xib, и я снова вижу изображения, но теперь мои настройки cornerRadius не работают.

Также возникла проблема при установке cornerRadius на основе размера вида в awakeFromNib, потому что xib рассматривает значение по умолчанию с размером кадра (1000,1000).