2017-01-07 34 views
0

嗨在我的應用程序中,我想在cell.contentview中添加特定的視圖現在的情況是,我可以添加此代碼。原因是如果我把這個代碼放在cellforitematindexpath中它會被加入到最後一個單元格中(indxpath.row)原因是在cellforrowatindexpath中最後一個單元格會被最後加載,因此視圖將被添加到最後一個單元格中。而我想要的是當前顯示的那個單元格如何在uicollectionview中獲取當前cell.contentview。如何在uicollectionview單元格中添加子視圖

這是我的代碼。只需添加子視圖

let cell : pdfImageCell = collectionView.dequeueReusableCell(withReuseIdentifier: "pdfImageCell", for: indexPath) as! pdfImageCell 


cell.contentView.addSubview(userResizableView1) 
+0

「雖然我希望它在當前顯示的單元格上」 - 可能有多個單元格同時顯示。那麼你究竟在尋找哪一個子視圖? – raidfive

+0

分享代碼完整cellForItemAtIndexPath方法 –

+0

我一次只顯示一個單元格@ raidfive –

回答

0

可以在awakeFromNib()方法添加UIView。它只會打一次電話。

class pdfImageCell : UICollectionViewCell { 

    //you can add here 
    override func awakeFromNib() { 

     var userResizableView1 = UIView() 
     self.contentView.addSubview(userResizableView1) 
    } 

} 
+0

但我在我的viewcontroller類中獲取userResizableView1,所以如何在uitableviewcell類中使用該單元格? –

+0

你可以在awakeFromNib()方法中添加userResizableView1,然後設置userResizableView1.hidden = true。在你的cellforitematindexpath中,如果你想顯示那麼你可以設置userResizableView1.hidden = false –

0

UICollectionView中獲取可見像元索引,如下所示。如果可以在屏幕上看到多個單元格,則可以看到多個單元格,以便選擇所需的單元格。

var visibleCurrentCell: IndexPath? { 
    for cell in self.collectionView.visibleCells { 
     let indexPath = self.collectionView.indexPath(for: cell) 
     return indexPath 
    }  
    return nil 
} 

然後從索引中獲取單元格並在該單元格中添加子視圖。

0
- (void)reloadItemsAtIndexPaths:(NSArray *)indexPaths 

這是重新加載特定indexPaths在你的CollectionView的方法

您可以點擊更新您的數據源和你cellForItemAtIndex會知道從它必須有子視圖此時

數據源
if (datasourcearray[indexpPath.row].isSubViewToBeAdded) 
{ 
    self.contentview.addsubview(subViewToBeAdded) 
} 
相關問題