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

本文介绍如何在UITableViewCell中实现多行图片显示的功能,通过自定义UIView并将其加载到Cell上,使得UITableViewCell能够展示多行图片。具体实现包括在theTableViewController中定义按钮数组,根据每行显示的图书本数计算行数,并在Cell中遍历添加按钮和图片。
原创文章,如需转载请注明:转载自:舵手程序 [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
MATLAB主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性内容概要:本文主要介绍了一种在MATLAB环境下实现的主动噪声和振动控制算法,该算法针对较大的次级路径变化具有较强的鲁棒性。文中详细阐述了算法的设计原理与实现方法,重点解决了传统控制系统中因次级路径动态变化导致性能下降的问题。通过引入自适应机制和鲁棒控制策略,提升了系统在复杂环境下的稳定性和控制精度,适用于需要高精度噪声与振动抑制的实际工程场景。此外,文档还列举了多个MATLAB仿真实例及相关科研技术服务内容,涵盖信号处理、智能优化、机器学习等多个交叉领域。; 适合人群:具备一定MATLAB编程基础和控制系统理论知识的科研人员及工程技术人员,尤其适合从事噪声与振动控制、信号处理、自动化等相关领域的研究生和工程师。; 使用场景及目标:①应用于汽车、航空航天、精密仪器等对噪声和振动敏感的工业领域;②用于提升现有主动控制系统对参数变化的适应能力;③为相关科研项目提供算法验证与仿真平台支持; 阅读建议:建议读者结合提供的MATLAB代码进行仿真实验,深入理解算法在不同次级路径条件下的响应特性,并可通过调整控制参数进一步探究其鲁棒性边界。同时可参考文档中列出的相关技术案例拓展应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值