昨天(7.27)的主要工作就是在做上传照片这一块,系统自带的在相册中选取照片只能选择一个,自己写得话可能在效率上不会达到预期,于是在几个开源网站上找了几个相关的第三方,有的是有BUG,有的是版本问题,最后选择了一个ELCImagePicker。然后又自己对其做了封装,因为这个仅提供了选取照片的功能。展示照片的时候需要做成类似微信朋友圈那种效果,而且还要限制个数,自己实现了这一界面的布局逻辑,经测试可以正常使用,主要是通过collectionView来实现,将所选取的照片添加到数组,然后选取照片时进行判断。在collectionView的代理方法中要予以区别,因为相框中展示的是选取好的照片,但是最后一个相框里边应该是一个加号按钮,可以进行选取照片的工作。代理方法如下:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
PhotoCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"myCell" forIndexPath:indexPath];
[cell.imageView removeFromSuperview];
cell.imageView = [[UIImageView alloc] initWithFrame:cell.contentView.bounds];
[cell.contentView addSubview:cell.imageView];
if (indexPath.row==_photoArr.count) {
UIImage *image = [UIImage imageNamed:@"addPhoto"];
NSLog(@"image = %@",image);
cell.imageView.image = image;
return cell;
}else{
UIImage *image = _photoArr[indexPath.row];
cell.imageView.image = image;
}
return cell;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
//如果达不到照片的最大数,就返回数组的元素数加一
if (_photoArr.count<PhotoMax){
return _photoArr.count+1;
}else{
return _photoArr.count;
}
}