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];
// 初始化 myUICollectionView
self.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