我在将UICollectionView的布局从Flow更改为Custom时遇到问题。
我引用了地址 “ https://www.raywenderlich.com/392-uicollectionview-custom-layout-tutorial-pinterest”
我尝试将示例代码添加到现有代码中
override func viewDidLoad ()
{
super.viewDidLoad ()
self.setViewLayer ()
self.addPullToRefresher ()
self.addGesture ()
self.addDropDownView ()
self.getArtList ()
self.artCollectionView.regCells (cells: ["HomeCollectionViewCell"])
NotificationCenter.default.addObserver(self, selector: #selector(self.getNotification(_:)), name: Notification.Name(Constants.GET_ARTS), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.resetArts(_:)), name: Notification.Name(Constants.GET_ARTS_RESET), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.searchArts(_:)), name: Notification.Name(Constants.HOME_SEARCH), object: nil)
if let layout = collectionView?.collectionViewLayout as? PinterestLayout
{
layout.delegate = self
}
}
extension HomeViewController: PinterestLayoutDelegate
{
func collectionView (_ collectionView: UICollectionView, heightForPhotoAtIndexPath indexPath: IndexPath) -> CGFloat
{
return photos [indexPath.item].image.size.height
}
}
但是我遇到了一个错误
collectionView?.collectionViewLayout as? PinterestLayout
错误状态
对成员'collectionView(_:willDisplay:forItemAt :)的含糊不清的引用
请帮助我。
答案 0 :(得分:0)
基于viewDidLoad
中的其他代码,您的集合视图变量名为artCollectionView
,而不是collectionView
。在这种情况下,错误确实会引起误解。
更改:
if let layout = collectionView?.collectionViewLayout as? PinterestLayout
收件人:
if let layout = artCollectionView.collectionViewLayout as? PinterestLayout