1

私は別UITableViewCellのものを使用してUITableViewおり、このセルの背景ビューを設定すると、セル全体ではなくボックス内の画像が塗りつぶされているようです。セパレートUITableViewCellUITableView'sロウの寸法は280x44です。これがどのように見えるかのイメージです: ここに画像の説明を入力

セルの背景ビューを設定するために私が書いているコードは次のとおりです。

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

    PBDashboardSummarizedCell *cell = (PBDashboardSummarizedCell *)[tableView dequeueReusableCellWithIdentifier:@"PBDashboardSummarizedCell"];
    if (!cell) {
        cell = [PBDashboardSummarizedCell standardCell];
    }
     if(datapickup.isexpanded==YES)
          {
           UIImageView *av = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 280, 44)];
              av.opaque = NO;
              av.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"dashboardCellEffect.png"]];
              cell.backgroundView = av;          //tried this
             // [cell setBackgroundView:av];     //and this also... but still image is set in the box and not the whole cell
          }
          else{
              UIImageView *av = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 280, 44)];
              av.backgroundColor = [UIColor clearColor];
              av.opaque = NO;
              cell.backgroundView = av;

        }

          return cell;
}
4

3 に答える 3

2

このコードを試してください。それは私のために働いた。

UIImageView * ac= [[UIImageView alloc] init];
ac.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"image.png"]];
cell.backgroundView =ac;
cell.backgroundColor = [UIColor clearColor];
于 2013-03-12T04:17:11.343 に答える
1

これを試して?

UIImage *backgroundImage = [UIImage imageNamed:@"dashboardCellEffect.png"];
UIView *backgroundCellView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 280, 44)];
// redraw the image to fit cell's size
UIGraphicsBeginImageContextWithOptions(backgroundCellView.frame.size, NO, 0.f);
[backgroundImage drawInRect:CGRectMake(0.f, 0.f, backgroundCellView.frame.size.width, backgroundCellView.frame.size.height)];
UIImage *refinedImage = UIGraphicsGetImageFromCurrentImageContext();    
UIGraphicsEndImageContext();

[backgroundCellView setBackgroundColor:[UIColor colorWithPatternImage:refinedImage]];
cell.backgroundView = backgroundCellView;
于 2013-03-12T04:01:01.893 に答える
1

イメージビューを使用しているため、セル全体ではなくイメージビューのみに色が表示されます

以下の方法を試すことができます

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(datapickup.isexpanded==YES)
    {
        cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"dashboardCellEffect.png"]];
    }
    else {
         cell.backgroundColor = [UIColor clearColor];
    }
}

上記のコードで問題が解決します。

于 2013-03-12T04:10:55.723 に答える