//
|
// PBExamineTableHeaderView.m
|
// IphoneBIMe
|
//
|
// Created by zjf on 2018/11/29.
|
// Copyright © 2018 ProBIM. All rights reserved.
|
//
|
|
#import "PBExamineTableHeaderView.h"
|
#import "PBImageCollectionViewCell.h"
|
#import "PBProjectModel.h"
|
|
static NSString *cellID = @"cellID";
|
@interface PBExamineTableHeaderView()<UICollectionViewDataSource, UICollectionViewDelegate, SDPhotoBrowserDelegate>
|
@property (nonatomic, strong) UICollectionView *collectionView;
|
@property (nonatomic, strong) UIButton *photoBtn;
|
@property (nonatomic, strong) UIPageControl *pageControl;
|
//记录当前页码
|
@property (nonatomic, assign) NSInteger currentPage;
|
@property (nonatomic, weak) UIImageView *videoImageV;
|
@property (nonatomic, weak) UIButton *playBtn;
|
@property (nonatomic, weak) UIButton *deleteBtn;
|
@end
|
|
@implementation PBExamineTableHeaderView
|
|
- (instancetype)initWithFrame:(CGRect)frame {
|
if (self = [super initWithFrame:frame]) {
|
[self setupUI];
|
}
|
return self;
|
}
|
- (void)setupUI {
|
UIImageView *bgImageV = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Examine_add_photo_bg"]];
|
[self addSubview:bgImageV];
|
[bgImageV mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.bottom.left.right.equalTo(self);
|
}];
|
UIButton *uploadPhotoBtn = [UIButton z_bgImageButton:[UIImage imageNamed:@"Examine_upload_photo"]];
|
[uploadPhotoBtn addTarget:self action:@selector(uploadPhoto) forControlEvents:UIControlEventTouchUpInside];
|
[self addSubview:uploadPhotoBtn];
|
[uploadPhotoBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.center.equalTo(self);
|
}];
|
[self addSubview:self.collectionView];
|
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.bottom.left.right.equalTo(self);
|
}];
|
self.collectionView.hidden = YES;
|
|
UIButton *photoBtn = [UIButton z_bgImageButton:[UIImage imageNamed:@"Examine_camera"]];
|
[photoBtn addTarget:self action:@selector(uploadPhoto) forControlEvents:UIControlEventTouchUpInside];
|
[self addSubview:photoBtn];
|
[photoBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.centerY.equalTo(self);
|
make.right.equalTo(self).offset(-10);
|
}];
|
photoBtn.hidden = YES;
|
UIPageControl *pageControl = [[UIPageControl alloc] init];
|
pageControl.numberOfPages = 5;
|
pageControl.currentPage = 3;
|
pageControl.pageIndicatorTintColor = [UIColor whiteColor];
|
pageControl.currentPageIndicatorTintColor = WarningColor;
|
pageControl.hidesForSinglePage = YES;
|
[self addSubview:pageControl];
|
[pageControl mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.centerX.equalTo(self);
|
make.bottom.equalTo(self).offset(-13);
|
}];
|
self.pageControl.currentPage = 0;
|
self.photoBtn = photoBtn;
|
self.pageControl = pageControl;
|
self.pageControl.hidden = YES;
|
|
UIImageView *videoImageV = [[UIImageView alloc] init];
|
[self addSubview:videoImageV];
|
[videoImageV mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.bottom.left.right.equalTo(self);
|
}];
|
UIButton *playBtn = [UIButton z_bgImageButton:[UIImage imageNamed:@"details_play"]];
|
[playBtn addTarget:self action:@selector(playVideo) forControlEvents:UIControlEventTouchUpInside];
|
[self addSubview:playBtn];
|
[playBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.center.equalTo(self);
|
make.size.mas_equalTo(CGSizeMake(92, 92));
|
}];
|
UIButton *deleteBtn = [UIButton z_bgImageButton:[UIImage imageNamed:@"Issue_image_delete"]];
|
[deleteBtn addTarget:self action:@selector(deleteVideo) forControlEvents:UIControlEventTouchUpInside];
|
[self addSubview:deleteBtn];
|
[deleteBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
make.top.equalTo(self).offset(5);
|
make.right.equalTo(self).offset(-5);
|
make.size.mas_equalTo(CGSizeMake(24, 24));
|
}];
|
self.videoImageV = videoImageV;
|
self.playBtn = playBtn;
|
self.deleteBtn = deleteBtn;
|
self.deleteBtn.hidden = YES;
|
self.playBtn.hidden = YES;
|
self.videoImageV.hidden = YES;
|
}
|
|
- (void)uploadPhoto {
|
if (self.ChooseImageBlock) {
|
self.ChooseImageBlock();
|
}
|
}
|
- (void)playVideo {
|
NSLog(@"开始播放");
|
if (self.PlayVideoBlock) {
|
self.PlayVideoBlock();
|
}
|
}
|
- (void)deleteVideo {
|
NSLog(@"删除视频");
|
if (self.DeleteVideoBlock) {
|
self.DeleteVideoBlock();
|
}
|
}
|
- (UICollectionView *)collectionView {
|
if (!_collectionView) {
|
UICollectionViewFlowLayout *layout = [UICollectionViewFlowLayout.alloc init];
|
layout.itemSize = CGSizeMake(self.width, self.height);
|
layout.minimumLineSpacing = 0;
|
layout.minimumInteritemSpacing = 0;
|
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
|
_collectionView = [UICollectionView.alloc initWithFrame:CGRectZero collectionViewLayout:layout];
|
[_collectionView registerClass:[PBImageCollectionViewCell class] forCellWithReuseIdentifier:cellID];
|
_collectionView.delegate = self;
|
_collectionView.dataSource = self;
|
_collectionView.pagingEnabled = YES;
|
_collectionView.bounces = NO;
|
_collectionView.showsHorizontalScrollIndicator = NO;
|
_collectionView.backgroundColor = [UIColor whiteColor];
|
}
|
return _collectionView;
|
}
|
#pragma mark - UICollectionViewDataSource
|
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
if (_isAddExamine) {
|
return self.imageArr.count;
|
}else {
|
return self.detailsImageArr.count;
|
}
|
}
|
|
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
PBImageCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellID forIndexPath:indexPath];
|
cell.roleType = self.roleType;
|
cell.DeleteImageBlock = ^{
|
NSInteger count;
|
if (self.isAddExamine) {
|
count = self.imageArr.count - 1;
|
}else {
|
count = self.detailsImageArr.count - 1;
|
}
|
if (self.currentPage == (self.imageArr.count - 1) && self.currentPage != 0) {
|
--self.currentPage;
|
}
|
if (self.DeleteImageBlock) {
|
self.DeleteImageBlock(indexPath.row);
|
}
|
};
|
|
if (_isAddExamine) {
|
cell.image = self.imageArr[indexPath.row];
|
}else {
|
NSString *url = [NSString stringWithFormat:@"%@%@",BaseUrl, [self.detailsImageArr[indexPath.row] valueForKey:@"AttachmentUrl"]];
|
cell.imageUrl = url;
|
}
|
return cell;
|
}
|
|
#pragma mark - UICollectionViewDelegate
|
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
|
self.currentPage = scrollView.contentOffset.x / self.width;
|
self.pageControl.currentPage = self.currentPage;
|
}
|
|
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
|
SDPhotoBrowser *photoBrowser = [SDPhotoBrowser new];
|
photoBrowser.delegate = self;
|
photoBrowser.currentImageIndex = indexPath.item;
|
if (self.isAddExamine) {
|
photoBrowser.imageCount = self.imageArr.count;
|
}else {
|
photoBrowser.imageCount = self.detailsImageArr.count;
|
}
|
photoBrowser.sourceImagesContainerView = self.collectionView;
|
[photoBrowser show];
|
}
|
|
#pragma mark SDPhotoBrowserDelegate
|
// 返回临时占位图片(即原来的小图)
|
- (UIImage *)photoBrowser:(SDPhotoBrowser *)browser placeholderImageForIndex:(NSInteger)index {
|
// 不建议用此种方式获取小图,这里只是为了简单实现展示而已
|
PBImageCollectionViewCell *cell = (PBImageCollectionViewCell *)[self collectionView:self.collectionView cellForItemAtIndexPath:[NSIndexPath indexPathForItem:index inSection:0]];
|
return cell.imageV.image;
|
}
|
|
|
- (void)setImageArr:(NSMutableArray *)imageArr {
|
_imageArr = imageArr;
|
self.videoImageV.hidden = YES;
|
self.playBtn.hidden = YES;
|
self.deleteBtn.hidden = YES;
|
[self setPageControl];
|
}
|
- (void)setVideoArr:(NSMutableArray *)videoArr {
|
_videoArr = videoArr;
|
self.videoImageV.hidden = NO;
|
self.playBtn.hidden = NO;
|
self.deleteBtn.hidden = NO;
|
LFResultVideo *result = videoArr[0];
|
self.videoImageV.image = result.coverImage;
|
}
|
|
- (void)setPageControl {
|
NSArray *arr;
|
if (_isAddExamine) {
|
arr = self.imageArr;
|
}else {
|
arr = self.detailsImageArr;
|
}
|
if (arr.count != 0) {
|
self.collectionView.hidden = NO;
|
self.photoBtn.hidden = NO;
|
self.pageControl.hidden = NO;
|
if (self.isAddExamine) {
|
self.pageControl.numberOfPages = self.imageArr.count;
|
}else {
|
self.pageControl.numberOfPages = self.detailsImageArr.count;
|
}
|
self.pageControl.currentPage = self.currentPage;
|
[self.collectionView reloadData];
|
}else {
|
self.photoBtn.hidden = YES;
|
self.collectionView.hidden = YES;
|
self.pageControl.hidden = YES;
|
[self.collectionView reloadData];
|
}
|
}
|
- (void)setDetailsImageArr:(NSArray *)detailsImageArr {
|
_detailsImageArr = detailsImageArr;
|
[self setPageControl];
|
}
|
- (void)setIsAddExamine:(BOOL)isAddExamine {
|
_isAddExamine = isAddExamine;
|
}
|
- (void)setProjectModel:(PBProjectModel *)projectModel {
|
_projectModel = projectModel;
|
}
|
- (void)setRoleType:(RoleType)roleType {
|
_roleType = roleType;
|
}
|
@end
|