UITableView将文本放在图像顶部

时间:2012-01-09 21:16:38

标签: uitableview cell

我有一个UITableView,每个单元格上都有一个图像和文字,但它们并排放置。我要做的是将文本标签放在图像的顶部。有可能吗?

2 个答案:

答案 0 :(得分:3)

采取自定义UITableViewCell,在每个单元格中取UIView,并将您的图片作为UIView的背景颜色,然后在UILabel的顶部取UIView {1}}。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:MyIdentifier] autorelease];
    cell.textLabel.font = [UIFont fontWithName:@"Arial" size:15.0];
    cell.selectionStyle = UITableViewCellSelectionStyleBlue;

    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pl_arows.png"]];
    cell.accessoryView = imageView;
    cellView = [[[UIView alloc] initWithFrame:CGRectMake(0,0,290, 70)] autorelease]; //important do not changer the position
    cellView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"order_description_bg.png"]];
    cellView.tag =10;
     [cell.contentView addSubview:cellView];

    imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 15, 39, 36)];
    imgView.image = [UIImage imageNamed:@"image_category.png"];
    imgView.layer.borderColor = [UIColor blackColor].CGColor;
    imgView.tag = 5;
    [cellView addSubview:imgView];

    //Status label

            CGRect statusRectText = CGRectMake(52, 0, 50, 18);
    UILabel *statusLabelText = [[[UILabel alloc] initWithFrame:statusRectText] autorelease];
    statusLabelText.textAlignment = UITextAlignmentRight;
            statusLabelText.backgroundColor = [UIColor clearColor];
    statusLabelText.tag = 101;
     [imgView addSubview:statusLabelText];

}

答案 1 :(得分:2)

您必须定义一个自定义UITableViewCell,您可以在其中放置任何标准UI对象,包括UILabel之上的UIImage