1

TableView にカスタム セルがあり、セルにボタンがあります。セルを選択すると、背景が青色に変わり、ボタンが消えます。これを防ぐ方法はありますか?

このような cellForRowAtIndexPath -

- (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
MyTableCell *cell = (MyTableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [[MyTableCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                  reuseIdentifier:CellIdentifier];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

}
Search *current = [self.retrievedTweets objectAtIndex:indexPath.row];
cell.textLabel.text = current.text;
cell.textLabel.font = [UIFont systemFontOfSize:15.0];
cell.textLabel.numberOfLines = 2;
cell.detailTextLabel.text = current.name;
cell.imageView.image = current.userImage;


btnUncheck =[[UIButton alloc] initWithFrame:CGRectMake(400, 35, 20, 20)];


btnUncheck.backgroundColor = [UIColor redColor];
btnUncheck.layer.cornerRadius = 10;
btnUncheck.hidden =NO;
btnUncheck.tag=indexPath.row;
//[btnUncheck addTarget:self action:@selector(didSelectRowAtIndexPath:) forControlEvents:UIControlEventTouchUpInside];

[cell.contentView addSubview:btnUncheck];
return cell;
}
4

6 に答える 6

1

選択したテーブル セルにカスタム イメージを使用します。またはボタン画像で試してください。

于 2012-05-09T13:57:43.183 に答える
0

あなたができることはこれです:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{[tableView deselectRowAtIndexPath:indexPath animated:YES];}

お役に立てれば

また、これをすでに実装している場合、このデリゲートメソッドには他に何がありますか?

于 2012-05-09T14:35:49.157 に答える
0

この行の代わりに:

btnUncheck = [[UIButton alloc] initWithFrame:CGRectMake(400, 35, 20, 20)];

使用する:

btnUncheck = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
[btnUncheck setFrame:CGRectMake(400, 35, 20, 20)];
于 2012-05-09T14:45:04.697 に答える
0

テーブルビューのデリゲートメソッドの行の下に貼り付けます

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

{

///// your code ///////////
cell.selectionStyle=UITableViewCellSelectionStyleNone;
//// your code////////

}

ここでは、青い背景は表示されません..

于 2012-05-09T14:23:19.613 に答える
0

背景色をクリアして設定した「カスタム」ビューを作成します。

UIView* vista=[[[UIView alloc] init] autorelease];
vista.backgroundColor=[UIColor clearColor];
cell.selectedBackgroundView=vista;
于 2012-05-09T15:36:25.280 に答える
0

これを修正する方法は、xib エディターでボタンを追加するカスタム セルを作成することです。

そのため、xib エディターで「UITableViewCell」項目を追加します。次に、xib エディターでそのセル項目にボタンを追加します。次に、対応する .m ファイルのテーブルにカスタム セルを添付します。

  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

私はこれを 1 行のテーブルだけで試し、カスタム セルをプロパティとして xib からテーブル ビューを持つ .h ファイルに結び付けました。ハイライトが表示され、ボタンがグレー表示されます (まだ表示されています)。これをより多くの行で機能させるには、より複雑です。カスタム utableviewcell xib をロードし、カスタム セルを動的に割り当てる必要があります。

于 2012-05-09T16:02:30.113 に答える