添加UIButton到UItableview单元
我有一个包含3个部分的分组tableview,我想为每个部分添加不同的按钮,我在第一部分中有5个单元格,并且我想在第二个部分中只添加3个解除按钮, 3R的第四cell.my代码看起来像这样添加UIButton到UItableview单元
- (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:
?否则,可能会导致应用程序崩溃。
作品perfectt感谢 – stackiphone 2012-04-19 14:52:27
:)乐意提供帮助。 – Alok 2012-04-19 14:56:04
首先,这是很容易的:
添加的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];
}
在新小区类添加按钮和意见,您
[self addSubview:button];
这是你的特殊的细胞,你的第二,第三和第四单元在第一部分中的细胞一样。
像你已经做的那样,按照上面的相同方式创建一个标准单元格。 现在,这里是魔法:
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;
}
}
只是一个小的概述,它是怎样来完成。 希望有所帮助。
让我小妞它的工作原理 – stackiphone 2012-04-19 14:29:39
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];
}
}
如果您滚动你可能会得到不同的东西, – Bala 2012-04-19 14:53:06