У меня есть пользовательский UICollectionViewCell, который я пытаюсь передать значение с моего контроллера представления. Я могу передать изображение в ячейку, но при инициализации все остальное приходит в ноль.Как передать значение пользовательскому UICollectionViewCell?
Соответствующий код в View Controller:
override func viewDidLoad() {
self.collectionView!.registerClass(MyCustomCell.self, forCellWithReuseIdentifier: "Cell")
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! MyCustomCell
cell.someValue = 5
cell.imageView.image = UIImage(named: "placeholder.png")
return cell
}
В классе пользовательские ячейки:
var someValue: Int!
var imageView: UIImageView!
override init(frame: CGRect) {
super.init(frame: frame)
imageView = UIImageView(frame: CGRectMake(0, 0, frame.width, frame.height))
contentView.addSubview(imageView)
let someValueLabel = UILabel()
someValueLabel.frame = CGRectMake(0, 75, 200, 30)
someValueLabel.text = "Value is: \(someValue)"
self.addSubview(someValueLabel)
}
Изображение успешно прошло от UICollectionView, и я могу показать его, но «SomeValue 'всегда ноль.
Что я делаю неправильно?
Кроме того, вы не должны называть свой объект UIImageView «imageView». Поскольку UITableViewCell уже содержит имя, использующее это имя. Это может привести к нежелательному эффекту. Возможно, это было исправлено, но я уже столкнулся с некоторыми проблемами. Подобно этому Q: http://stackoverflow.com/questions/11681273/uitableviewcell-imageview-changing-on-select – BoilingLime