0

テーブルビューのセルに従ってビューにサブビューを追加しようとしています..私はすでにこのコードを実行しています

  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    VerseCell *cell = (VerseCell *)[tableView cellForRowAtIndexPath:indexPath];

    rowSelected = indexPath.row;

    CGRect  cellRect = cell.frame;

    UIView *cellView =[[UIView alloc]initWithFrame:CGRectMake(cellRect.origin.x+4, cellRect.origin.y+15, cellRect.size.width-20, 70)];

  UIImageView* background =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"FavoritePanelBackground"]];
    background.frame =CGRectMake(cellRect.origin.x+4, cellRect.origin.y+15, cellRect.size.width-20, 70);
    [cellView addSubview:background];
    [cellView setBackgroundColor:[UIColor redColor] ];
    UIButton * favoritsB = [[UIButton alloc]initWithFrame:CGRectMake(cellRect.origin.x+10, cellRect.origin.y+15, 60, 40)];
    [favoritsB setBackgroundImage:[UIImage imageNamed:@"MofadalatNormalIcon.png"] forState:UIControlStateNormal];
    [favoritsB setBackgroundImage:[UIImage imageNamed:@"MofadalatTappedIcon.png"] forState:UIControlStateHighlighted];
  [favoritsB addTarget:self action:@selector(favorite) forControlEvents:UIControlEventTouchUpInside];

    [cellView addSubview:favoritsB];

    cellView=nil;

}

問題は..このコードが最初の行でのみ期待どおりに機能することです..次のセルをクリックすると、メインのUIVIew(赤い背景でマークしたもの)が予想される位置に表示されますが、サブビューは本当に遠くに行く...だから私はここで間違っている..それがうまくいかない場合、私がやっていることに対する別のアプローチはありますか?

4

1 に答える 1

0

これらのビューをどこに追加しようとしていますか? テーブルビューのセル内? その場合、cellView をセルのサブビューとして追加することはありません。それがあなたがやろうとしていることである場合は、次の行を cellView = nil のすぐ上に追加します。

[セル addSubview:cellView];

于 2012-11-14T19:26:50.447 に答える