对成员“ collectionView” Swift 4的含糊引用

时间:2018-10-25 04:25:56

标签: ios swift xcode

我在将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 :)的含糊不清的引用

请帮助我。

1 个答案:

答案 0 :(得分:0)

基于viewDidLoad中的其他代码,您的集合视图变量名为artCollectionView,而不是collectionView。在这种情况下,错误确实会引起误解。

更改:

if let layout = collectionView?.collectionViewLayout as? PinterestLayout

收件人:

if let layout = artCollectionView.collectionViewLayout as? PinterestLayout