无法让UICollectionView显示出来

时间:2014-07-18 12:47:24

标签: interface-builder uicollectionview uicollectionviewlayout

我已经向UIViewController添加了一个UICollectionView,但它没有显示出来,为什么?我只能看到黑色背景。标签textcolor是白色的。

enter image description here

更新

我必须实现以下UICollectionViewDataSource方法。 UICollectionView无法通过静态单元格(如UITableView)仅通过动态原型设计的课程。

func collectionView(collectionView: UICollectionView!,
    numberOfItemsInSection section: Int) -> Int
{
    return 5
}

func collectionView(collectionView: UICollectionView!,
    cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell!
{
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath)

    return cell as UICollectionViewCell
}

1 个答案:

答案 0 :(得分:1)

看起来你没有实现CollectionView委托方法。 我想建议,你必须实现UICollectionView委托方法。

那些是 -

#pragma mark - UICollectionViewDataSource

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    return "number of items";
}

// This method return the object of collectionViewCell.Your collectionviewcell has label object.
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];

    return cell;
}

// Perform operation on selection of cell
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {

}

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
    return 1; // returns number of section
}

#pragma mark - UICollectionViewFlowDelegate

// Returns size of Cell
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    return CGSizeMake(80, 60);
}

// Space between cells
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
    return UIEdgeInsetsMake(2, 5, 2, 5);
}

不要忘记将委托链接到xib文件。 实现这些方法后,您可以在设备或模拟器上看到这些Cell。