2013-03-10 105 views
4

Stackoverflow問題https://stackoverflow.com/a/13555814/1678391被回答有關在UICollectionViewController中設置可變大小的單元格。我想弄清楚如何用一個包含在UIViewController中的UICollectionView對象來做到這一點。 GetSizeForItem是我需要的,但沒有看到從哪裏得到它。UICollectionView cell格大小

我的實現通過Xcode向我的UIViewController添加了一個UICollectionView。在我的代碼中,我正在執行以下操作;

public partial class CustomViewController : UIViewController 
{ 
    public override void ViewDidLoad() 
    { 
     collectionView.RegisterClassForCell(typeof(MyCell), cellId); 
    } 

    public override void ViewWillAppear(bool animated) 
    { 
     collectionView.Source = new CollectionViewSource(items, cellId); 
    } 

    class CollectionViewSource : UICollectionViewSource 
    { 
    } 

    class MyCell : UICollectionViewCell 
    { 
    } 
} 

回答

1

根據http://docs.go-mono.comGetSizeForItem僅適用於UICollectionViewDelegateFlowLayout類。

要使用該方法,您應該實施UICollectionViewDelegateFlowLayout子類並將其分配給DelegateUICollectionViewController的屬性。 Example

+1

雖然我沒有使用UICollectionViewController。只需在UIViewController中使用UICollectionView。只有使用UICollectionViewController才能設置大小?謝謝 – Vincent 2013-03-11 14:11:34

+0

你可以(http://stackoverflow.com/questions/14291889/how-can-we-use-uicollectionview-without-an-uicollectionviewcontroller)。嘗試在UICollectionView的構造函數中設置第二個參數,或稍後設置「UICollectionView」的「CollectionViewLayout」屬性。 – 2013-03-11 14:29:04

+0

似乎無法獲取要調用的委託子類。 flowLayoutDelegate = new CollectionViewDelegateFlowLayout(); lineLayout = new CollectionViewFlowLayout(); collectionView.RegisterClassForCell(typeof(MyCell),CellId); collectionView.CollectionViewLayout = lineLayout; collectionView.Delegate = flowLayoutDelegate; – Vincent 2013-03-12 20:55:17

相關問題