设置背景图像时,UILabel不显示文本

时间:2013-03-22 03:40:37

标签: ios cocoa-touch uilabel

我尝试将背景图像设置为UITableViewCell中的标签,但在运行时,只有背景图像显示在标签中,文本不会显示。

这是我的代码

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

    static NSString *CellIdentifier = @"TableCell";

    // Dequeue or create a cell of the appropriate type.
    TableCell *cell = (TableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];


    if (cell == nil) {
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TableCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
    UIImageView *preparationLabelBg = [[UIImageView alloc]
                                    initWithImage:[UIImage imageNamed:@"cellbg.jpeg"]];
    [cell.preparationLabel addSubview:preparationLabelBg];
    cell.preparationLabel.backgroundColor=[UIColor clearColor];
    [cell.preparationLabel sendSubviewToBack:preparationLabelBg];
    [cell.preparationLabel setOpaque:NO];

}

[cell.preparationLabel setFont:[UIFont fontWithName:@"Marker Felt" size:14]];

// Configure the cell.
if (btnselected==1)
{
    cell.preparationLabel.text = [recipe.ingredients objectAtIndex:indexPath.row];
}
else
{
 cell.preparationLabel.text = [recipe.preparation objectAtIndex:indexPath.row];
}
return cell;

}

为什么这里没有显示文字?有人可以帮忙吗?

3 个答案:

答案 0 :(得分:4)

试试这段代码,

theLabel.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cellbg.jpeg"]];

答案 1 :(得分:0)

您不应将背景图像添加到UILabel,而是将背景图像添加到表格Cell作为子视图或将背景图像添加为[cell.contentview addSubview:[UIImage imageNamed:@"cellbg.jpeg"]]

也可以使用PNG代替JPEG / JPG。 Apple更喜欢PNG。

答案 2 :(得分:0)

而不是将lable的背景放在ImageView的后面放置一个lable,然后将图像设置为ImageView。它会起作用。