ボタンのようにtableViewセルを使用することは可能ですか? 私のアプリでは、4行のテーブルビューが必要で、各行にラベルがあります。私が欲しいのは、行に触れると、テーブルのテーブルビューのセルがボタンのように反応するはずです(アクションを実行し、背景が強調表示されます)? それは可能ですか?どうやってやるの?ありがとう。
4 に答える
4
非常に単純なデリゲート メソッドは didSelectRowAtIndexPath と呼ばれ、どのセクションでどの行がタップされているかを取得し、さらにアクションを実行できます。
例えば
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// deselect
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if(indexPath.row == 0){
LoginFormViewController *vController = nil;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
vController = [[LoginFormViewController alloc] initWithNibName:@"LoginFormViewController_ipad" bundle:nil];
}else {
vController = [[LoginFormViewController alloc] initWithNibName:@"LoginFormViewController" bundle:nil];
}
[self.navigationController pushViewController:vController animated:YES];
[vController release];
}
}
于 2012-09-08T12:10:38.380 に答える
3
この「ボタン」機能は、UITableView デリゲートの tableView:didSelectRowAtIndexpath メソッドに実装できます;)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// do something when pressed on an UITableViewCell
}
于 2012-09-08T12:09:40.967 に答える
2
tableView:didSelectRowAtIndexPath:
セルが強調表示され、テーブル ビューのデリゲートはとにかくメッセージを受け取ります。説明したことを達成するために余分なものは必要ありません。
于 2012-09-08T12:09:41.357 に答える
0
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.selectionStyle=UITableViewCellSelectionStyleGray;
}
if(tableView.tag==1)
{
cell.userInteractionEnabled = NO;
cell.backgroundColor =[UIColor blackColor];
UIButton *Btn11=[UIButton buttonWithType:UIButtonTypeCustom];
[Btn11 addTarget:self action:@selector(ratingAction:) forControlEvents:UIControlEventTouchUpInside];
[Btn11 setBackgroundImage:[UIImage imageNamed:@"small_img4.png"] forState:UIControlStateNormal];
Btn11.tag=indexPath.row;
Btn11.frame=CGRectMake(0, 6.5, 156, 74.5);
UILabel *Main_tblImg_Label=[[UILabel alloc]initWithFrame:CGRectMake(0, 80,156, 31)];
[Main_tblImg_Label setBackgroundColor:[UIColor blackColor]];
//[Main_tblImg_Label setText:@"First Drive 2012 Mercedes Benz M class"];
//Main_tblImg_Label.textAlignment = UITextAlignmentCenter;
[Main_tblImg_Label setTextColor:[UIColor whiteColor]];
[Main_tblImg_Label setFont:[UIFont fontWithName:@"Helvetica" size:9]];
[Main_tblImg_Label setNumberOfLines:2];
[cell.contentView addSubview:Main_tblImg_Label];
[cell.contentView addSubview:Btn11];
UILabel *other_Lbl=[[UILabel alloc]initWithFrame:CGRectMake(14, 80, 142, 29)];
[other_Lbl setText:@"First Drive 2012 \nMercedes Benz M class"];
[other_Lbl setBackgroundColor:[UIColor blackColor]];
[other_Lbl setTextColor:[UIColor whiteColor]];
[other_Lbl setFont:[UIFont fontWithName:@"Helvetica" size:9]];
[other_Lbl setNumberOfLines:2];
[cell.contentView addSubview:other_Lbl];
[cell.contentView addSubview:Btn11];
//[cell.contentView addSubview:Main_tblImg_Label];
// [cell.contentView addSubview:Btn11];
//
UIButton *Btn22=[UIButton buttonWithType:UIButtonTypeCustom];
[Btn22 addTarget:self action:@selector(ratingAction2:) forControlEvents:UIControlEventTouchUpInside];
[Btn22 setBackgroundImage:[UIImage imageNamed:@"Screen2.png"] forState:UIControlStateNormal];
Btn22.tag=indexPath.row;
Btn22.backgroundColor=[UIColor clearColor];
Btn22.frame=CGRectMake(165, 6.5, 156, 74.5);
UILabel *main_tblImg_Lbl2=[[UILabel alloc]initWithFrame:CGRectMake(165, 80, 156, 31)];
[main_tblImg_Lbl2 setBackgroundColor:[UIColor blackColor]];
//[main_tblImg_Lbl2 setText:@"Audi planning Mexican Assembly plant?"];
[main_tblImg_Lbl2 setTextColor:[UIColor whiteColor]];
//[main_tblImg_Lbl2 setFont:[UIFont fontWithName:@"times" size:1]];
[main_tblImg_Lbl2 setFont:[UIFont fontWithName:@"Helvetica" size:10]];
[main_tblImg_Lbl2 setNumberOfLines:2];
[cell.contentView addSubview:main_tblImg_Lbl2];
UILabel *other1_Lbl=[[UILabel alloc]initWithFrame:CGRectMake(176, 80, 136, 31)];
[other1_Lbl setText:@"Audi planning Mexican Assembly plant?"];
[other1_Lbl setBackgroundColor:[UIColor blackColor]];
[other1_Lbl setTextColor:[UIColor whiteColor]];
[other1_Lbl setFont:[UIFont fontWithName:@"Helvetica" size:10]];
[other1_Lbl setNumberOfLines:2];
[cell.contentView addSubview:other1_Lbl];
[cell.contentView addSubview:Btn11];
[cell.contentView addSubview:Btn22];
}
return cell
}
于 2012-09-08T13:28:03.593 に答える