我已经搜索了很多以编程方式创建UICollectionView
,但没有一个建议使用它的最简单方法,如何向UICollectionViewCell
添加标签或图像。大多数网站都建议UICollectionView
的实施与UITableView
相同,但主要区别在于我们尝试添加任何图片时。在UITableView
中,我们可以在cellForRow
方法中分配imageViews cell == nil
并将图像分配到cell != nil
)。但是在UICollectionView ItemAtIndexPath
方法的情况下,cell == nil
' s UITableView
中没有条件(CellForRow
)。因此,我们无法在UImageView
方法中有效地分配itemAtIndexPath
s或标签等变量。我想知道除了继承UICollectionViewCell
并在该自定义类中分配变量之外是否还有其他选择?任何人都可以提供帮助,感谢任何帮助。
答案 0 :(得分:3)
在itemAtIndex方法中无法创建或分配单元格。我们需要注册自定义类以在自定义类中创建任何视图。像这样的东西:
[UICollectionView registerClass:[CustomCollectionViewClass class] forCellWithReuseIdentifier:@"cellIdentifier"];
here是我觉得有用的最佳链接。希望它能帮助别人
答案 1 :(得分:1)
swift:
override func viewDidLoad() {
super.viewDidLoad()
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: 20, left: 10, bottom: 10, right: 10)
layout.itemSize = CGSize(width: 70, height: 70)
let demoCollectionView:UICollectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
demoCollectionView.dataSource = self
demoCollectionView.delegate = self
demoCollectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell")
demoCollectionView.backgroundColor = UIColor.whiteColor()
self.view.addSubview(demoCollectionView)
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 27
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath)
cell.backgroundColor = UIColor.lightGrayColor()
return cell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
{
print("User tapped on item \(indexPath.row)")
}