UI10-UICollectionView
来源:互联网 发布:拦截视频广告软件 编辑:程序博客网 时间:2024/05/05 04:39
ViewController.m
#import "ViewController.h"#import "UIColor+RandomColor.h"#import "CustomCollectionViewCell.h"#import "PhotoViewController.h"@interface ViewController ()<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>//数据源@property (nonatomic, strong)NSMutableArray *dataSource;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //实例化数据源 _dataSource = [NSMutableArray array]; //循环添加RGB颜色到数据源 for (NSInteger index = 0; index < 50; index ++) { [_dataSource addObject:[UIColor specialRandomColor]]; } /**< CollectionView */ //1.CollectionView布局(流式布局) UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init]; //滚动方向 layout.scrollDirection = UICollectionViewScrollDirectionVertical; //设置 item 的尺寸 layout.itemSize = CGSizeMake(100, 100); //设置 item 之间的最小间距 layout.minimumInteritemSpacing = 4; //设置 item 之间的最小行距 layout.minimumLineSpacing = 10; //header(宽和CollectionView是一样的,在此设置无意义) layout.headerReferenceSize = CGSizeMake(320, 60); //footer(宽和CollectionView是一样的,在此设置无意义) layout.footerReferenceSize = CGSizeMake(0, 60); //2.利用布局对象实例化 CollectionView UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:layout]; //背景颜色 collectionView.backgroundColor = [UIColor whiteColor]; //内偏移量(上,左,下,右) collectionView.contentInset = UIEdgeInsetsMake(0, 20, 0, 20); //代理(处理响应) collectionView.delegate = self; //代理(展示数据) collectionView.dataSource = self; //注册cell [collectionView registerClass:[CustomCollectionViewCell class] forCellWithReuseIdentifier:@"cell"]; //注册header [collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header"]; //注册 footer [collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footer"]; //添加到视图 [self.view addSubview:collectionView]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"照片" style:UIBarButtonItemStylePlain target:self action:@selector(nextAction)];}- (void)nextAction{ PhotoViewController *phVC = [[PhotoViewController alloc]init]; [self.navigationController pushViewController:phVC animated:YES];}#pragma mark - UICollectionViewDelegate,UICollectionViewDataSource//指定有几个 cell- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ return _dataSource.count;}//配置返回 cell- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ //初始化 CustomCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath]; //赋值 cell.backgroundColor = _dataSource[indexPath.row]; return cell;}//通过设置SupplementaryViewOfKind 来设置头部或者底部的view,其中 ReuseIdentifier 的值必须和 注册是填写的一致- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{ if (kind == UICollectionElementKindSectionHeader) { //header //取到header UICollectionReusableView *header = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header" forIndexPath:indexPath]; //设置背景颜色 header.backgroundColor = [UIColor cyanColor]; return header; }else{ //footer UICollectionReusableView *footer = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footer" forIndexPath:indexPath]; //设置背景颜色 footer.backgroundColor = [UIColor cyanColor]; return footer; } }//选择 cell- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ NSLog(@"%ld",indexPath.row); /**< 删除 */// //删除数据源// [_dataSource removeObjectAtIndex:indexPath.row];// //删除视图// [collectionView deleteItemsAtIndexPaths:@[indexPath]]; /**< 插入 */ //插入数据源// [_dataSource insertObject:[UIColor specialRandomColor] atIndex:indexPath.row];// //插入视图// [collectionView insertItemsAtIndexPaths:@[indexPath]]; /**< 移动 */ //移动数据源 [_dataSource exchangeObjectAtIndex:indexPath.row withObjectAtIndex:0]; //移动视图 [collectionView moveItemAtIndexPath:indexPath toIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; }@endPhotoViewController.m
#import "PhotoViewController.h"@interface PhotoViewController ()<UINavigationControllerDelegate,UIImagePickerControllerDelegate>//图片视图@property (nonatomic, strong) UIImageView *imageView;@end@implementation PhotoViewController- (void)viewDidLoad { [super viewDidLoad]; //设置背景颜色 self.view.backgroundColor = [UIColor whiteColor]; /**< 图片 */ //初始化 _imageView = [[UIImageView alloc] init]; //大小 _imageView.bounds = CGRectMake(0, 0, CGRectGetWidth(self.view.bounds)*0.8, CGRectGetWidth(self.view.bounds)*0.8); //中心店位置 _imageView.center = CGPointMake(CGRectGetMidX(self.view.bounds), CGRectGetMidY(self.view.bounds) - 100); //背景颜色 _imageView.backgroundColor = [UIColor lightGrayColor]; //添加到视图 [self.view addSubview:_imageView]; /**< 选择按钮 */ //初始化 UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; //位置和大小 button.frame = CGRectMake(150, 500, 80, 30); //按钮文字 [button setTitle:@"选择" forState:UIControlStateNormal]; //添加动作 [button addTarget:self action:@selector(buttonTaped:) forControlEvents:UIControlEventTouchUpInside]; //添加到视图 [self.view addSubview:button];}//button实现方法- (void)buttonTaped:(UIButton *)sender { UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"选择照片" message:@"请你选择头像" preferredStyle:UIAlertControllerStyleActionSheet]; UIAlertAction *photoAction = [UIAlertAction actionWithTitle:@"选择照片" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [self choosePhoto]; }]; UIAlertAction *takeAction = [UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [self takePhoto]; }]; UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]; [alertController addAction:photoAction]; [alertController addAction:takeAction]; [alertController addAction:cancelAction]; [self presentViewController:alertController animated:YES completion:nil]; }//相册- (void)choosePhoto { UIImagePickerController *picker = [[UIImagePickerController alloc]init]; //资源类型 picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //代理 picker.delegate = self; //允许编辑 picker.allowsEditing = YES; //推送界面 [self presentViewController:picker animated:YES completion:nil];}//拍照(不能拍照,因为模拟器不支持拍照)- (void)takePhoto { if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){ NSLog(@"你的手机不支持拍照,请更换设备"); return; } UIImagePickerController *picker = [[UIImagePickerController alloc]init]; //资源类型 picker.sourceType = UIImagePickerControllerSourceTypeCamera; //代理 picker.delegate = self; //允许编辑 picker.allowsEditing = YES; //推送界面 [self presentViewController:picker animated:YES completion:nil];}#pragma mark - UIImagePickerControllerDelegate- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{ NSLog(@"%@",info); //给image赋值 _imageView.image = info[UIImagePickerControllerEditedImage]; //返回 [picker dismissViewControllerAnimated:YES completion:nil];}@endCustomCollectionViewCell.m
#import "CustomCollectionViewCell.h"@implementation CustomCollectionViewCell- (instancetype)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 40, 20)]; label.backgroundColor = [UIColor whiteColor]; [self addSubview:label]; } return self;}@end
0 0
- UI10-UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- UICollectionView
- Android Animation学习(六) View Animation介绍
- VC----MFC函数CSingleDocTemplate
- 55
- 2016.09.10【初中部 NOIP提高组 】模拟赛C题解
- 点名器
- UI10-UICollectionView
- ajax轮询 & 长连接 & websocket
- 【JZOJ 4771】爬山
- bzoj 2300: [HAOI2011]防线修建(splay动态维护凸包)
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题解
- NOIP2014 寻找道路 解题报告(dfs+bfs)
- 使用vue+webpack的多页面框子
- HTML,CSS去除块级元素默认边距
- App更新