你的位置:首页 > 操作系统

[操作系统]表格选中效果展示

 

源代码地址:https://github.com/EizoiOS/ImagePickerClass

效果图如下:

 

在单元格上增加一张图片,此处的实例是把背景阴影也一起做为一张图片,平时可以通过一个VIEW来设置它的透明度;还要单元格给它赋于相应的点击事件;

 1:此为单元格视图,用于处理选中的效果 

[email protected] EizoAsset : UIView{  UIImageView * selectedView; // 创建一个ImageView -- 用来添加到选中的这个图片上  BOOL selected;       // 创建一个bool值 -- [email protected] (strong,nonatomic)ALAsset * asset; // [email protected] (assign , nonatomic) id parent;-(id)initWithAsset:(ALAsset*)asset;-(BOOL)selected;-(void)toggleSelection;@end

EiaoAsset.m文件:#import "EizoAsset.h"@interface EizoAsset(){  UIImageView * assetImageView; // [email protected]@implementation EizoAsset-(id)initWithAsset:(ALAsset *)asset {  if (self = [super initWithFrame:CGRectMake(0, 0, 0, 0)]) {    self.asset = asset;    assetImageView = [[UIImageView alloc]init];    assetImageView.contentMode = UIViewContentModeScaleAspectFill;    assetImageView.image = [UIImage imageWithCGImage:[self.asset thumbnail]];    // ALAsset的thumbnail是图片的缩略图    [self addSubview:assetImageView];    selectedView = [[UIImageView alloc]init];    selectedView.image = [UIImage imageNamed:@"Select.png"];    selectedView.hidden = YES;    [self addSubview:selectedView];  }  return self;}- (BOOL)selected {  return !selectedView.hidden;}-(void)setSelected:(BOOL)_selected {  [selectedView setHidden:!_selected];}// 在单元格 也就是上一个层面添加了一个手势 点击变化选中的状态 也就是改变这个bool值- (void)toggleSelection {  selectedView.hidden = !selectedView.hidden;}-(void)setFrame:(CGRect)frame {  [super setFrame:frame];  assetImageView.frame = self.bounds;  selectedView.frame = self.bounds;[email protected]

注意:这边已经把选中的效果去加上去,只是让它先隐藏起来,还设置它点击触发的事件;ALAsset就是数据模型,用来存一些图片的数据;

 

2:单元格文件:

eiaoAssetCell.h文件#import <UIKit/UIKit.h>#define topMargin [email protected] EizoAssetCell : UITableViewCell// 单元格的创建方法-(instancetype)initWithAssets:(NSArray *)assets reuseIdentifier:(NSString *)identifier;// 传入这个assets的方法-(void)setAssets:(NSArray *)assets;// @property (nonatomic,retain) NSArray * linesAssets; // 传入的图片的数组 -- [email protected] 文件:#import "EizoAssetCell.h"#import "EizoAsset.h"@implementation EizoAssetCell-(instancetype)initWithAssets:(NSArray *)assets reuseIdentifier:(NSString *)identifier {  if (self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]) {    self.linesAssets = assets;  }  return self;}-(void)layoutSubviews {  CGFloat h = self.bounds.size.height - topMargin;  CGFloat margin = (self.bounds.size.width - 4 * h) / 5.0;  CGRect frame = CGRectMake(margin,topMargin, h, h);  for(EizoAsset * eizoAsset in self.linesAssets) {    eizoAsset.frame = frame;    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:eizoAsset action:@selector(toggleSelection)];    [eizoAsset addGestureRecognizer:tap];    [self addSubview:eizoAsset];    frame.origin.x = frame.origin.x + frame.size.width + margin;  [email protected]

注意:这边最为重要的是在layoutSubviews里面的代码,UITapGestureRecognizer把target指向上面创建的EizoAsset视图,这样便可以调用上面创建的选中及反选的事件;


新加坡旅游签证怎么办理新加坡旅游去哪好新加坡旅游团报价优惠新加坡蜜月旅游行程参考新加坡特价旅游多少钱2015广州除夕之夜哪里有倒数活动?除夕广州跨年倒数活动介绍? 2015春节南海影视城过年有什么好玩活动?佛山南海影视城过年有表演吗? 新会过年去哪玩?2015春节新会适合小孩玩的地方? 2015开平春节去哪赏油菜花?开平马降龙碉楼油菜花什么时间开放? 三亚西岛怎么去蜈支洲岛?三亚西岛最早什么时间开船? 三亚西岛到蜈支洲岛有多远?三亚西岛船票多少钱? 三亚湾怎么坐车到呀诺达热带雨林?三亚湾到呀诺达雨林直达车时间? 深圳欢乐谷2015圣诞节有夜场吗?2015深圳欢乐谷圣诞节夜场从什么时候开始? 泡温泉有什么要注意的? 韶关三日游攻略纪实 广西阳朔四日三晚旅游攻略 什么时候去陕西旅游最好? 十月份国内有哪些旅游景点适合旅游? 为什么鼓浪屿又叫琴岛? 厦门哪个沙滩人少又好玩的? 去厦门旅游怎么玩比较好? 0402YA470JAJ2A Datasheet 0402YA470JAJ2A Datasheet SQCB7M470JAJWE Datasheet SQCB7M470JAJWE Datasheet 12107C102KAT2A Datasheet 12107C102KAT2A Datasheet 安徽到邮轮旅游 安徽到邮轮旅游 安徽到邮轮旅游 安徽到约旦旅游 安徽到约旦旅游 安徽到约旦旅游 安徽到越南旅游 安徽到越南旅游 安徽到越南旅游