用于ios应用程序的不同背景图像的自定义tableview单元格

时间:2013-10-22 06:36:22

标签: ios uitableview

我想设计一个tableview,使每个单元格具有不同的背景图像,具体取决于条件。有10个图像用于单元格背景,我想加载它们,以便在单元格上重复图像模式。例如,单元格1-10分别拍摄1-10的图像。然后,单元格11-20也拍摄图像1-10,依此类推。我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:3)

提供图像名称,如:images_1 / 2 ... / 10.png

 //write it

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
    static NSString *CellIdentifier = @"Cell1";

  CustomCell  *Cell  = (CustomCell *)[tabeleYourTurn dequeueReusableCellWithIdentifier:CellIdentifier];
    if (Cell == nil)
    {
        NSArray *topLevelObject= [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
        }

        for (id currentobject in topLevelObject)
        {
            if ([currentobject isKindOfClass:[UITableViewCell class]])
            {
                Cell = (CustomCell *) currentobject;

                break;
            }
        }
    }

 NSString *image = [NSString stringWithFormat:@"images_%d.png", indexPath.row % 10 + 1];
 Cell.imageView.image = [UIImage imageNamed:image];

return Cell;

}

可能会有用。

答案 1 :(得分:3)

首先使用ImageName ..

创建一个数组

喜欢

NSArray *ImageArray=[[NSArray alloc]initWithObjects:@"1.png",@"2.png"];

然后这个数组有10个图像

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
 {
 static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:CellIdentifier];

}


// create a background image for the cell:
    UIImageView *bgView = [[UIImageView alloc] initWithFrame:CGRectZero];
    [cell setBackgroundColor:[UIColor clearColor]];
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
    [cell setBackgroundView:bgView];
    [cell setIndentationWidth:0.0];


((UIImageView *)cell.backgroundView).image = [UIImage imageNamed:[ImageArray objectAtIndex:indexPath.row%10]];
}

答案 2 :(得分:2)

假设您的图像名称是1,2 ... 10,您可以尝试执行以下操作:

NSString *imageName = [NSString stringWithFormat:@"%d", indexPath.row % 10 + 1];

您可以在任何地方使用此imageName。

答案 3 :(得分:1)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];
    if (cell == nil)
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:CellIdentifier];

    if( (indexPath.row % 10 ) <= 1)
    {
        // set your image
        cell.imageView.image = [UIImage imageNamed:@"image1.png"];
    }
}