我正在尝试在UICollection
视图中显示一些文字。但我得到了错误
属性单元格标签不适用于类型的对象 UICOllectionViewCell
.h文件
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UICollectionViewDataSource,UICollectionViewDelegate>
@end
.m文件
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 10;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier =@"cell";
UICollectionViewCell* cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
cell.cellLabel.text = @"Sample Text";
return cell;
}
@end
我已经设置了UICollectionView
的delgate方法。
Here is the Screenshot of Error
答案 0 :(得分:0)
您是否在界面构建器中设置了cellLabel插座?
如果否,那就制作一个。
你的单元格.h文件中应该有这样的东西:
@property (weak, nonatomic) IBOutlet UILabel *cellLabel;
然后你真的需要这样做:
cell.cellLabel.text = @"";
你也可以制作这样的标签,
UILabel *cellLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 10, cell.bounds.size.width, 40)]; //custom size
[cell.contentView addSubview:cellLabel];
并像
一样使用它cell.cellLabel.text = @"Sample Text";
UICollectionView
上有教程,您可以查看this link.
答案 1 :(得分:0)
首先请注意,即使您有自定义单元格,也要将集合视图单元格转换为自定义单元格:
UICollectionViewCell* cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
在编译时,编译器不知道您正在尝试使用自定义单元格,因此该属性不存在。
请确保你:
创建了具有cellLabel属性的自定义UICollectionViewCell
您是通过代码注册了您的单元格,或者您在Interface Builder中使用了您的单元格标识符
您导入了单元格并在cellForItemAtIndexPath中使用它