| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- //
- // TZTestCell.m
- // TZImagePickerController
- //
- // Created by 谭真 on 16/1/3.
- // Copyright © 2016年 谭真. All rights reserved.
- //
- #import "TZTestCell.h"
- #import "UIView+Layout.h"
- #import <Photos/Photos.h>
- #import <AssetsLibrary/AssetsLibrary.h>
- #import "TZImagePickerController/TZImagePickerController.h"
- @implementation TZTestCell
- - (instancetype)initWithFrame:(CGRect)frame {
- self = [super initWithFrame:frame];
- if (self) {
- self.backgroundColor = [UIColor whiteColor];
- _imageView = [[UIImageView alloc] init];
- _imageView.backgroundColor = [UIColor colorWithWhite:1.000 alpha:0.500];
- _imageView.contentMode = UIViewContentModeScaleAspectFit;
- [self addSubview:_imageView];
- self.clipsToBounds = YES;
-
- _videoImageView = [[UIImageView alloc] init];
- _videoImageView.image = [UIImage imageNamedFromMyBundle:@"MMVideoPreviewPlay"];
- _videoImageView.contentMode = UIViewContentModeScaleAspectFill;
- _videoImageView.hidden = YES;
- [self addSubview:_videoImageView];
-
- _deleteBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [_deleteBtn setImage:[UIImage imageNamed:@"photo_delete"] forState:UIControlStateNormal];
- _deleteBtn.frame = CGRectMake(self.tz_width - 36, 0, 36, 36);
- _deleteBtn.imageEdgeInsets = UIEdgeInsetsMake(-10, 0, 0, -10);
- _deleteBtn.alpha = 0.6;
- [self addSubview:_deleteBtn];
-
- _gifLable = [[UILabel alloc] init];
- _gifLable.text = @"GIF";
- _gifLable.textColor = [UIColor whiteColor];
- _gifLable.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.8];
- _gifLable.textAlignment = NSTextAlignmentCenter;
- _gifLable.font = [UIFont systemFontOfSize:10];
- _gifLable.frame = CGRectMake(self.tz_width - 25, self.tz_height - 14, 25, 14);
- [self addSubview:_gifLable];
- }
- return self;
- }
- - (void)layoutSubviews {
- [super layoutSubviews];
- _imageView.frame = self.bounds;
- CGFloat width = self.tz_width / 3.0;
- _videoImageView.frame = CGRectMake(width, width, width, width);
- }
- - (void)setAsset:(id)asset {
- _asset = asset;
- if ([asset isKindOfClass:[PHAsset class]]) {
- PHAsset *phAsset = asset;
- _videoImageView.hidden = phAsset.mediaType != PHAssetMediaTypeVideo;
- _gifLable.hidden = ![[phAsset valueForKey:@"filename"] containsString:@"GIF"];
- } else if ([asset isKindOfClass:[ALAsset class]]) {
- ALAsset *alAsset = asset;
- _videoImageView.hidden = ![[alAsset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo];
- _gifLable.hidden = YES;
- }
- }
- - (void)setRow:(NSInteger)row {
- _row = row;
- _deleteBtn.tag = row;
- }
- - (UIView *)snapshotView {
- UIView *snapshotView = [[UIView alloc]init];
-
- UIView *cellSnapshotView = nil;
-
- if ([self respondsToSelector:@selector(snapshotViewAfterScreenUpdates:)]) {
- cellSnapshotView = [self snapshotViewAfterScreenUpdates:NO];
- } else {
- CGSize size = CGSizeMake(self.bounds.size.width + 20, self.bounds.size.height + 20);
- UIGraphicsBeginImageContextWithOptions(size, self.opaque, 0);
- [self.layer renderInContext:UIGraphicsGetCurrentContext()];
- UIImage * cellSnapshotImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- cellSnapshotView = [[UIImageView alloc]initWithImage:cellSnapshotImage];
- }
-
- snapshotView.frame = CGRectMake(0, 0, cellSnapshotView.frame.size.width, cellSnapshotView.frame.size.height);
- cellSnapshotView.frame = CGRectMake(0, 0, cellSnapshotView.frame.size.width, cellSnapshotView.frame.size.height);
-
- [snapshotView addSubview:cellSnapshotView];
- return snapshotView;
- }
- @end
|