将UIButton添加到UItableview单元格

我有一个分组的tableview,其中包含3个部分,我想为每个部分添加不同的button,我有第一部分5个单元格,我想只在第二个,3R第四个单元格中添加3个解除button。喜欢这个

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 3; } // Customize the number of rows in the table view. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if(section == 0) return [_arayfirstrow count]; else if(section == 1) return [_arraysecondrow count]; else if(section == 2) return [_arraythirdrow count]; } // Customize the appearance of table view cells. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; // static NSUInteger nTag = 100; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; cell.textLabel.font = [UIFont fontWithName:@"Georgia"size:20.0]; } // Set up the cell... if(indexPath.section == 0){ cell.textLabel.text = [_arayfirstrow objectAtIndex:indexPath.row]; NSString *imageName = [_arayfirstrowimg objectAtIndex:indexPath.row]; cell.imageView.image = [UIImage imageNamed:imageName]; **//when i add below code for inserting button on the first section ,it successfully adds the button,but i don't need button for 1st and 5th cell..ans also it crashes when i tap the button for 2 or three time** CGRect buttonRect = CGRectMake(210, 25, 65, 25); UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = buttonRect; // set the button title here if it will always be the same [button setTitle:@"Action" forState:UIControlStateNormal]; button.tag = 1; [button addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside]; [cell.contentView insertSubview:button atIndex:0]; // [usernamebutton release]; }else if(indexPath.section == 1){ cell.textLabel.text = [_arraysecondrow objectAtIndex:indexPath.row]; } else if(indexPath.section == 2) { cell.textLabel.text = [_arraythirdrow objectAtIndex:indexPath.row]; } return cell; } 

有没有解决这个问题的方法 提前致谢。

你可以这样尝试:

 if(indexPath.section == 0) { if(indexPath.row == 1||indexPath.row == 2||indexPath.row == 3) { CGRect buttonRect = CGRectMake(210, 25, 65, 25); UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = buttonRect; // set the button title here if it will always be the same [button setTitle:@"Action" forState:UIControlStateNormal]; button.tag = 1; [button addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside]; [cell.contentView addSubView:button atIndex:0]; } } 

你有没有定义方法myAction: 否则,可能会导致应用程序崩溃。

首先,这很简单:

将UITableViewCell的一个子类添加到您的项目中,插入您的标题,然后在您的委托方法中添加单元格,如下所示:

 static NSString *CellIdentifier = @"SpecialCell"; // static NSUInteger nTag = 100; YourTableViewCellClass *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (specialCell == nil) { specialCell = [[[YourTableViewCellClass alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; } 

在你自己的新单元类中添加你喜欢的button和视图

 [self addSubview:button]; 

这是你的特殊细胞,第一节你的第二,第三和第四个细胞的细胞。

就像你已经做的那样,按照上面的方法创build一个标准单元格。 现在来了魔术:

 if(indexPath.section == 0){ if(indexPath.row == 1||indexPath.row == 2||indexPath.row == 3){ //add text to buttons of your specialCell //add color... return specialCell; } else { return cell; } } 

只是一个小概述,它是如何完成的。 希望有所帮助。

 if(indexPath.section == 0) { if(indexPath.row == 1||indexPath.row == 2||indexPath.row == 3) { UIButton *deletebtn=[UIButton buttonWithType:UIButtonTypeRoundedRect]; [deletebtn setFrame:CGRectMake(170,5, 25, 25)]; deletebtn.tag=indexPath.row; [deletebtn setImage:[UIImage imageNamed:@"log_delete_touch.png"] forState:UIControlStateNormal]; [deletebtn addTarget:self action:@selector(DeleteRow:) forControlEvents:UIControlEventTouchUpInside]; [cell addSubview:deletebtn]; } }