这几天我们学习了UITableView和UITableViewCell,UITableViewController继承于UIViewController,所以很少代码就能实现一个视图。UITableView是UIScrollView的子类,所以会有上下滑动的效果。UITableView和UITableViewCell里面不能存储数据,可以显示特定行内的数据,通过单元格重用和实现UITableViewDelegate,UITableViewDataSource协议的方法实现的。下面就说一下实现步骤。
创建一个tableView
UITableView *tableView = [UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain];
签协议
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
选择代理
tableView.delegate = self;
tableView.dataSource = self;
把tableview添加到当前视图上
[self.view addSubview:tableView];V
注册cell
[tableView registerClass:[UITableViewCell class]forCellReuseIdentifier:@"cell"];
实现协议方法设置区中row的个数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 10;
}
实现协议方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
从重用池取cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"forIndexPath:indexPath];
给cell的文本赋值
cell.textLabel.text = @“标题”;
给cell设置背景颜色
cell.contentView.backgroundColor = [UIColor yellowColor];
返回cell
return cell;
}
UICollectionView的创建和实现和UITableView几乎差不多,但也有一些差别
首先创建一个 UICollectionViewFlowLayout类的对象,这点和UITableView不同
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
然后创建一个UICollectionView类的对象
UICollectionView *myCollectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
签协议
@interface ViewController ()<UICollectionViewDataSource,UICollectionViewDelegate>
设置代理
myCollectionView.delegate = self;
myCollectionView.dataSource = self;
注册cell
[myCollectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cell"];
设定最小列间距
layout.minimumInteritemSpacing = 5;
设定最小行间距
layout.minimumLineSpacing = 5;
设定myCollectionView的滚动方向为垂直滚动
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
设定cell的大小
layout.itemSize = CGSizeMake(CGRectGetWidth(self.view.bounds) / 2 - 7.5, 120);
将集合视图添加到当前视图上
[self.view addSubview:myCollectionView];
实现协议方法设定区中row的个数
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 10;
}
实现协议方法
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
从重用池取cell
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
将cell的背景颜色设为红色
cell.backgroundColor = [UIColor redColor];
返回cell
return cell;
}
网友评论