ifish/Ifish/UMCommunity/UMCommunitySDK/UMCommunityUI/CustomView/PhotoSelector/UMAssetsCollectionGrid.m

104 lines
2.5 KiB
Objective-C

//
// UMAssetsCollectionGrid.m
// UMCommunity
//
// Created by luyiyuan on 14/9/10.
// Copyright (c) 2014年 Umeng. All rights reserved.
//
#import "UMAssetsCollectionGrid.h"
#import "UMAssetsCollectionCheckMarkView.h"
#import "UMAssetsCollectionOverlayView.h"
#define kNUMBEROFGRIDSINROW 4
@interface UMAssetsCollectionGrid()
@property (nonatomic, strong) UIImageView *imageView;
@property (nonatomic, strong) UMAssetsCollectionOverlayView *overlayView;
@property (nonatomic, strong) UIImage *blankImage;
@end
@implementation UMAssetsCollectionGrid
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.isSelected = NO;
self.backgroundColor = [UIColor brownColor];
// Create a image view
UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.bounds];
imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self addSubview:imageView];
self.imageView = imageView;
}
return self;
}
- (void)setIsSelected:(BOOL)isSelected
{
_isSelected = isSelected;
// Show/hide overlay view
if (isSelected) {
[self showOverlayView];
} else {
[self hideOverlayView];
}
}
- (void)showOverlayView
{
[self hideOverlayView];
UMAssetsCollectionOverlayView *overlayView = [[UMAssetsCollectionOverlayView alloc] initWithFrame:self.bounds];
overlayView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self addSubview:overlayView];
self.overlayView = overlayView;
}
- (void)hideOverlayView
{
if (self.overlayView) {
[self.overlayView removeFromSuperview];
self.overlayView = nil;
}
}
- (void)setAsset:(ALAsset *)asset
{
_asset = asset;
// Update view
CGImageRef thumbnailImageRef = [asset thumbnail];
if (thumbnailImageRef) {
self.imageView.image = [UIImage imageWithCGImage:thumbnailImageRef];
} else {
self.imageView.image = [self blankImage];
}
}
- (UIImage *)blankImage
{
if (_blankImage == nil) {
CGSize size = CGSizeMake(100.0, 100.0);
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
[[UIColor colorWithWhite:(240.0 / 255.0) alpha:1.0] setFill];
UIRectFill(CGRectMake(0, 0, size.width, size.height));
_blankImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
return _blankImage;
}
@end