我对ios更新鲜,任何人都可以告诉我,我如何管理多个可变阵列?例如:我有3个数组,一个数组用于图像,另外两个数组包含名称和描述,我想在UITableView单元格上显示
我试过这个但它崩溃了。
image = [[NSMutableArray alloc] initWithObjects:[UIImage imageNamed:@"demo_business_image@.png"], [UIImage imageNamed:@"demo_business_image@.png"], nil];
name = [[NSMutableArray alloc] initWithObjects:@"Dinner Bell Annouse 50% Discount on Punjabi Food!", nil];
time = [[NSMutableArray alloc] initWithObjects:@"13M", nil];
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return image.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UIImageView *img = (UIImageView *) [cell.contentView viewWithTag:720];
UILabel *lbl1 = (UILabel *) [cell.contentView viewWithTag:721];
UILabel *lbl2 = (UILabel *) [cell.contentView viewWithTag:722];
img.image = [image objectAtIndex:indexPath.row];
// lbl1.text=[name objectAtIndex:indexPath.row];
// lbl2.text=[time objectAtIndex:indexPath.row];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
return cell;
}
答案 0 :(得分:0)
有图像数组计数是2.But在名称和时间数组1对象只有那里。所以你必须给三个数组相同的大小。
答案 1 :(得分:0)
试试此代码
image=[[NSMutableArray alloc]initWithObjects:[UIImage imageNamed:@"demo_business_image@.png"], nil];
name=[[NSMutableArray alloc]initWithObjects:@"Dinner Bell Annouse 50% Discount on Punjabi Food!", nil];
time=[[NSMutableArray alloc]initWithObjects:@"13M", nil];
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section
{
return image.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UIImageView *img=(UIImageView*)[cell.contentView viewWithTag:720];
UILabel *lbl1=(UILabel *)[cell.contentView viewWithTag:721];
UILabel *lbl2=(UILabel *)[cell.contentView viewWithTag:722];
img.image=[image objectAtIndex:indexPath.row];
// lbl1.text=[name objectAtIndex:indexPath.row];
// lbl2.text=[time objectAtIndex:indexPath.row];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
return cell;
}
答案 2 :(得分:0)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section
{return image.count;}
image.count结果是来自编码的2值(来自图像数组的值), 当cellForRowAtIndexPath为每个数组调用2次时 但是在其他数组中只有1个值,它必须显示绑定数组的错误索引
答案 3 :(得分:0)
在您的代码中,图像计数为2因此更改,因为根据表格视图中的部分数量创建单元格2次,因为名称& time数组每个只包含1个对象,因此在NSMutableArray中添加相同数量的对象。
比你得到预期的输出。或者您可以尝试使用键值对的NSDictionary。