用UITableViewCell实现电子书平铺书架效果

原创文章,如需转载请注明:转载自:舵手程序 [color=red][size=xx-large][url]http://www.helmsmansoft.com/index.php/archives/70[/url][/size][/color]

现阶段网上讲解的实现这种效果的文章一般都是用UIVIew 去加载UIButton实现此功能,今天给大家说一下在UITableViewCell下怎样去实现这种效果

UITableViewCell默认是列表形态,默认状态下允许加载一张图片,如果想实现在UITableViewCell中显示多行图片,可以自定义UIView,把UIView加载到Cell上即可实现这种效果。这里主要说一下怎么去写Cell里的功能,其它功能不具体解释了。

具体见代码:
在theTableViewController.h中定义UIButton *buttonArray;
在theTableViewController.m文件内定义Cell中显示的图书本数

#define theNumberOfTatleTile 3 //每行显示3本
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section //每行3本,返回的行数
{
if([self.listFileName count]%theNumberOfTatleTile == 0){ //listFileName 图书名字数组
return [self.listFileName count]/theNumberOfTatleTile;
}else{
return [self.listFileName count]/theNumberOfTatleTile+1;
}
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *theKey = @"theKey";
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; //注意此处
{

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:theKey] autorelease];

UILabel *customLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 768, 1004)];
customLabel.backgroundColor = [UIColor redColor];
buttonArray = [[NSMutableArray alloc] init];
NSUInteger row = [indexPath row];
for(int i = 0 ; i < [self.listFileName count]/theNumberOfTatleTile;i++){
NSNumber *cellRow = [[NSNumber alloc] initWithInt:theNumberOfTatleTile];
[buttonArray addObject:cellRow];
}
for(int j = 0 ; j < [self.listFileName count]%theNumberOfTatleTile; j++){
NSString *str = [NSString stringWithFormat:@"%d",[self.listFileName count]%theNumberOfTatleTile];
[buttonArray addObject:str];
}

cell.imageView.image = NULL;
cell.textLabel.text = NULL;
cell.detailTextLabel.text = NULL;
NSString *a = [buttonArray objectAtIndex:row];
NSInteger b= [a integerValue];

for(int m = 0 ; m < b; m++){

button = [[UIButton alloc] initWithFrame:CGRectMake(70+m%theNumberOfTatleTile*240, 20, 150, 200)];
UILabel *label= [[UILabel alloc] initWithFrame:CGRectMake(0, 170, 150, 30)];
[button setBackgroundImage:[UIImage imageNamed:@"apple.png"] forState:UIControlStateNormal];
label.backgroundColor = [UIColor clearColor];
label.text = [listFileName objectAtIndex:theNumberOfTatleTile*row+m];
[button addSubview:label];

button.backgroundColor = [UIColor whiteColor];
button.reversesTitleShadowWhenHighlighted = YES;
[button setTag:theNumberOfTatleTile*row+m];
[button addTarget:self action:@selector(thePicButtonPress:) forControlEvents:UIControlEventTouchUpInside];
// button.userInteractionEnabled = YES;
// [button setTitleShadowColor:[UIColor clearColor] forState:UIControlEventTouchUpInside];
// [button setTitleShadowColor:[UIColor blackColor] forState:UIControlStateNormal];
//
[cell addSubview:button];
[button release];

}
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"2.png"]];
cell.backgroundView = imgView;
cell.selectionStyle = UITableViewCellEditingStyleNone; //选中CELL后效果
return cell;

}
}

如果你喜欢本文,请去站点支持一下。分享给大家 舵手程序--http://www.helmsmansoft.com

转载本站文章请注明出处,转载自:舵手程序--http://www.helmsmansoft.com

本文链接地址: http://www.helmsmansoft.com/index.php/archives/70
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值