2017-01-07 7 views
0

こんにちは私のアプリケーションでは、cell.contentviewで特定のビューを追加したいのですが、ここではこのコードを追加できます。理由は、私はこのコードをcellforitematindexpathに置いていれば、それは最後のセル(indxpath.row)に追加されます。理由はcellforrowatindexpathにあります。最後のセルは最後にロードされ、最後のセルにビューが追加されます。私は現時点で表示されていたそのセルでそれをしたいです。uicollectionviewで現在のcell.contentviewを取得する方法。 uicollectionviewセルのサブビューを追加する方法

ここに私のコードです。単にあなたがawakeFromNib()方法でUIViewを追加することができますサブビュー

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


cell.contentView.addSubview(userResizableView1) 
+0

"現時点で表示されていたセルで欲しい" - 複数のセルが同時に表示されている可能性があります。だから、正確にあなたはこのサブビューを追加するために探していますか? – raidfive

+0

シェアコードfull cellForItemAtIndexPathメソッド –

+0

一度に1つのセルしか表示されません@ raidfive –

答えて

0

を追加する必要があります。それは一度だけ呼び出されます。

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 

ここで、あなたがクリックして、あなたのcellForItemAtIndexにあなたのデータソースを更新することができ、あなたのcollectionView

内の特定のindexPathsをリロードする方法であるが、それはサブビューにこの時間

を有していなければならないこと、あなたのデータソースから知っているだろう
if (datasourcearray[indexpPath.row].isSubViewToBeAdded) 
{ 
    self.contentview.addsubview(subViewToBeAdded) 
} 
関連する問題