我正在开发一个我的项目,根据从MySQL数据库返回的数据填充5个项目。我的问题是我需要根据返回的数据将每个项目设为圆形或方形。
运行以下内容时:
UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init];
_collectionView=[[UICollectionView alloc] initWithFrame:self.view.frame collectionViewLayout:layout];
[_collectionView setDataSource:self];
[_collectionView setDelegate:self];
[_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cellIdentifier"];
[_collectionView setBackgroundColor:[UIColor whiteColor]];
CGRect frame = [_collectionView frame];
[_collectionView setFrame:CGRectMake(10,
5,
300,
frame.size.height - 100)];
[self.view addSubview:_collectionView];
..调用创建正方形的自定义布局。我的问题是如何在细胞创建功能中使其成为正方形或圆形?
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
.... do my creation of circle or square in here
}
而不是在这里:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake(50, 50);
}
答案 0 :(得分:2)
您可以继承UICollectionViewCell
并将绘图代码放在子类中drawRect:
创建实际课程后,您可以通过执行类似
的操作来使用它- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MyCustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier";
// set custom properties here
return cell;
}
答案 1 :(得分:1)
无需让所有人疯狂并将其分类。
这种方法将保持代码模块化