#pragma mark -
#pragma mark 创建collectionView
- (UICollectionView *)collectionView {
if (!_collectionView) {
//确定是水平滚动,还是垂直滚动
UICollectionViewFlowLayout *flowLayout=[[UICollectionViewFlowLayout alloc] init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
self.collectionView=[[UICollectionView alloc] initWithFrame:CGRectMake(0, 64, width(self.view.frame), height(self.view.frame) - 64 - 60*KScDefineWidth) collectionViewLayout:flowLayout];
self.collectionView.dataSource=self;
self.collectionView.delegate=self;
[self.collectionView setBackgroundColor:[UIColor clearColor]];
//注册Cell,必须要有
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"UICollectionViewCell"];
[self.view addSubview:self.collectionView];
}
return _collectionView;
}
- (void)initRefresh {
MJRefreshNormalHeader *refreshHeader = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
[self loadAfterLoginData:NO];
}];
self.collectionView.header = refreshHeader;
// [self.tableView.header beginRefreshing];
MJRefreshBackNormalFooter *refreshFooter = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
[self loadAfterLoginData:YES];
}];
self.collectionView.footer = refreshFooter;
[self loadAfterLoginData:NO];
}
#pragma mark -- UICollectionViewDataSource
//定义展示的UICollectionViewCell的个数
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return self.dataSourceArray.count;
}
//定义展示的Section的个数
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
//每个UICollectionView展示的内容
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString * CellIdentifier = @"UICollectionViewCell";
UICollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
pictureModel *model = _dataSourceArray[indexPath.row];
NSString *picUrl = [NSString stringWithFormat:ImageUrlAll,model.path];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:cell.bounds];
[imageView sd_setImageWithURL:[NSURL URLWithString:picUrl] placeholderImage:[UIImage imageNamed:@"moren"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
}];
UIImageView *flagImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 30*KScDefineWidth, 30*KScDefineWidth)];
if ([model.status integerValue] == 0) {
flagImageView.image = [UIImage imageNamed:@"pic_status_0"];
}else {
if ([model.review integerValue] == 1) {
flagImageView.image = [UIImage imageNamed:@"pic_status_2"];
}else {
flagImageView.image = [UIImage imageNamed:@"pic_status_1"];
}
}
[imageView addSubview:flagImageView];
for (id subView in cell.contentView.subviews) {
[subView removeFromSuperview];
}
[cell.contentView addSubview:imageView];
return cell;
}
#pragma mark --UICollectionViewDelegateFlowLayout
//定义每个Item 的大小
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake(ImageWidth*KScDefineWidth + 9*KScDefineWidth, ImageWidth*KScDefineWidth + 9*KScDefineWidth);
}
//定义每个UICollectionView 的 margin
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(5*KScDefineWidth, 5, 5*KScDefineWidth, 5);
}
#pragma mark --UICollectionViewDelegate
//UICollectionView被选中时调用的方法
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
[self.imageUrlArray removeAllObjects];
UICollectionViewCell * cell = (UICollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];
//临时改变个颜色,看好,只是临时改变的。如果要永久改变,可以先改数据源,然后在cellForItemAtIndexPath中控制。(和UITableView差不多吧!O(∩_∩)O~)
cell.backgroundColor = [UIColor greenColor];
NSLog(@"item======%ld",indexPath.item);
NSLog(@"row=======%ld",indexPath.row);
NSLog(@"section===%ld",indexPath.section);
MHPhotoBrowserController *vc = [MHPhotoBrowserController new];
vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
vc.currentImgIndex = (int)indexPath.row;
vc.displayTopPage = YES;
vc.displayDeleteBtn = YES;
for (int i = 0; i < self.dataSourceArray.count; i++) {
pictureModel *model = _dataSourceArray[i];
NSString *picUrl = [NSString stringWithFormat:ImageUrlAll,model.path];
[self.imageUrlArray addObject:[MHPhotoModel photoWithURL:[NSURL URLWithString:picUrl]]];
}
pictureModel *model = _dataSourceArray[indexPath.row];
[[NSUserDefaults standardUserDefaults] setObject:model.status forKey:@"imageStatus"];
[[NSUserDefaults standardUserDefaults] synchronize];
[[NSUserDefaults standardUserDefaults] setObject:model.modelID forKey:@"imagePid"];
[[NSUserDefaults standardUserDefaults] synchronize];
vc.imgArray = self.imageUrlArray;
[self.navigationController presentViewController:vc animated:YES completion:nil];
NSDictionary *dict =[[NSDictionary alloc] initWithObjectsAndKeys:self.dataSourceArray,@"singleItemDelete", nil];
//创建通知
NSNotification *notification =[NSNotification notificationWithName:@"singleItemDelete" object:nil userInfo:dict];
//通过通知中心发送通知
[[NSNotificationCenter defaultCenter] postNotification:notification];
}
- (NSMutableArray *)imageUrlArray {
if (!_imageUrlArray) {
self.imageUrlArray = [NSMutableArray new];
}
return _imageUrlArray;
}
//返回这个UICollectionView是否可以被选择
-(BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
// 设置最小行间距,也就是前一行与后一行的中间最小间隔
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
return 5;
}
// 设置最小列间距,也就是左行与右一行的中间最小间隔
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 5;
}