UICollectionView列表视图和UITableView用法类似,直接给出代码
//
// myUICollectionViewTestController.m
// iosstudy2024
//
// Created by figo on 2025/1/21.
//#import "UICollectionViewTestController.h"@interface UICollectionViewTestController ()<UICollectionViewDelegate,UICollectionViewDataSource>
@property (strong, nonatomic) IBOutlet UICollectionView *myUICollectionView;@end@implementation UICollectionViewTestController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view from its nib.
// self.myUICollectionView.dataSource=self;
// self.myUICollectionView.delegate=self;/* 纯代码方式写 **/// 设置 myUICollectionView 的布局UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];// 初始化 myUICollectionViewself.myUICollectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];self.myUICollectionView.backgroundColor = [UIColor whiteColor]; // 设置背景色self.myUICollectionView.delegate = self;self.myUICollectionView.dataSource = self;// 注册 myUICollectionViewCell[self.myUICollectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"MyCell"];// 将 myUICollectionView 添加到视图中[self.view addSubview:self.myUICollectionView];}/*
#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {// Get the new view controller using [segue destinationViewController].// Pass the selected object to the new view controller.
}
*/- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath];cell.contentView.backgroundColor = [self randomColor];// 配置 cell,比如设置 label 文本return cell;
}- (NSInteger)collectionView:(nonnull UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {return 12;
}- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {NSLog(@"Selected item at index %ld", (long)indexPath.item);
}- (UIColor *)randomColor {CGFloat red = (CGFloat)arc4random_uniform(256) / 255.0;CGFloat green = (CGFloat)arc4random_uniform(256) / 255.0;CGFloat blue = (CGFloat)arc4random_uniform(256) / 255.0;return [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
}@end