Ich habe eine benutzerdefinierte UICollectionViewCell, von der ich versuche, einen Wert an meinen View-Controller zu übergeben. Ich bin in der Lage, ein Bild an die Zelle zu übergeben, aber alles andere kommt bei der Initialisierung auf Null.Wie übermittle ich einen Wert an eine benutzerdefinierte UICollectionViewCell?
Relevante Code im 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
}
In der benutzerdefinierten Zellklasse:
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)
}
Das Bild vom UICollectionView erfolgreich vorbei ist, und ich bin in der Lage, um sie anzuzeigen, aber ‚somevalue 'ist immer Null.
Was mache ich falsch?
Auch sollten Sie nicht Ihre UIImageView-Eigenschaft "ImageView" aufrufen. Seit UITableViewCell enthält bereits eine mit diesem Namen. Dies könnte zu unerwünschten Effekten führen. Vielleicht ist es behoben worden, aber ich habe schon einige Probleme erlebt. Wie folgt Q: http://stackoverflow.com/questions/11681273/uitableviewcell-imageview-changing-on-select – BoilingLime