我已经将UICollectionViewCell
子类化为UIImageView
。此图像视图连接到故事板上的图像视图控件。这是子类:
class ProfilesCell: UICollectionViewCell {
@IBOutlet weak var ProfileImage: UIImageView!
func setCell(item:Profile) {
ProfileImage.image = UIImage(named: item.profileThumb)
ProfileImage.layer.borderWidth = 0.5
ProfileImage.layer.borderColor = UIColor.grayColor().CGColor
}
}
我已经创建了它的一个实例并且工作正常,但是另一个实例呢?如何在不将UICollectionViewCell
重新连接到另一个控件的情况下将其选为另一个ProfileImage
的自定义类?
或者我应该将IBOutlet
首先连接到UIImageView
吗?
答案 0 :(得分:1)
此图像视图[来自单元格]连接到故事板上的图像视图控件。
我假设你在谈论UICollectionViewCell
原型。在这种情况下,您在故事板中操作的对象不是 集合视图单元格,它是您{{1}中所有图像视图单元格的原型 }}
我已经创建了它的一个实例并且工作正常,但是另一个实例呢?
这正是Swift设计师想到的场景,所以一切都应该按照你期望的方式工作。当你调用UIImageView
方法时,Cocoa会为你实例化单元格,"连线"您的dequeueReusableCellWithReuseIdentifier:
到ProfileImage
出口,并为您提供可供使用的单元格。
答案 1 :(得分:1)
如果要跨多个UICollectionView使用UICollectionViewCell,则应在单独的.xib中创建UICollectionViewCell。在这种情况下,您将拥有ProfileCell.xib和ProfileCell.swift。在.xib文件中,将UICollectionViewCell的实例拖到屏幕上,并将其设置为您在CollectionView上作为原型单元格的方式。
然后,您需要使用收集视图注册单元格。
//set this up in viewDidLoad
let nib = UINib(nibName: "ProfileCell", bundle: nil)
self.collectionView!.registerNib(nib, forCellWithReuseIdentifier: "ProfileCell")
然后在cellForItemAtIndexPath中以正常方式引用单元格
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
cell = self.collectionView?.dequeueReusableCellWithReuseIdentifier("ProfileCell, forIndexPath: indexPath) as! ProfileCell
cell.setCell()
return cell
}