0

テーブルビューに問題があり、uitableviewcellの背景を設定していますが、テーブルビューをスクロールすると、背景画像がセルの画像とテキストに重なっています。理由はわかりません。これがコードです。親切に私を助けてください。ありがとう。

NSString *CellIdentifier = [NSString stringWithFormat:@"%d",indexPath.row];

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

UIImage *image = [UIImage imageNamed:@"Workout strip.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.backgroundColor = [UIColor clearColor];
imageView.opaque = NO;
imageView.contentMode = UIViewContentModeBottomLeft;
cell.backgroundView = imageView;
cell.backgroundView.tag = indexPath.row;
[imageView release];
cell.textLabel.text = [exerciseNames objectAtIndex:indexPath.row];
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.imageView.image = [UIImage imageNamed:@"Workout video box.png"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

return cell;
4

2 に答える 2

0

私が理解できない理由のために、の背景色はUITableViewCellあなたのこの呼び出し内からのみ設定することができますUITableViewDelegate

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    // do whatever you need to do to your cell here to make it look the way you want
}

詳細については、UITableViewDelegateのドキュメントを参照してください。

于 2012-09-10T22:24:43.190 に答える
0

まず、これを取り除きます。

NSString *CellIdentifier = [NSString stringWithFormat:@"%d",indexPath.row];

セルが再利用されることはありません。これは悪いことです。そしておそらくあなたの問題の大部分

代わりにこれを行います:

NSString *CellIdentifier = @"Cell";

背景ビューをクリアに設定しないでください。パフォーマンスには良くありません。どうしても必要な場合を除いて、サブビューを不透明にする必要があります。

于 2012-09-10T19:47:33.930 に答える