如何处理iPhone上的每个和每个在tableviewcell上的按钮按钮

问题描述:

我的代码工作正常,但它仅适用于单个单元。当我定义5行时,它只适用于最后一个单元格。如果我点击1个单元格,然后在最后一个单元格上输入displayimage,但只显示它不显示我点击的位置以及单元格的位置。点击如何处理每个单元格的按钮更改图像。如何处理iPhone上的每个和每个在tableviewcell上的按钮按钮

-(void)changeMapType:(id)sender 
{ 
    //changeimagetype =!changeimagetype; 
// sender.selected = changeimagetype; 

    //sender.selected 
    changeimagetype =!changeimagetype; 
    if(changeimagetype == YES) 
    { 
     //flagButton=1; 
     //[check setImage:[UIImage imageNamed:@"alarm_OF.png"] forState:UIControlStateNormal]; 
    onButtonView.image = [UIImage imageNamed:@"alarm_OF.png"]; 
    [mimageButton setImage:onButtonView.image forState:UIControlStateNormal]; 

    } 
    else 
    { 
     //flagButton=2; 

    onButtonView.image = [UIImage imageNamed:@"alarm_ON.png"]; 
    [mimageButton setImage:onButtonView.image forState:UIControlStateNormal]; 
    } 
    [self.tableView reloadData]; 

} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    // Return the number of sections. 
    return 2; 
} 


// Customize the appearance of table view cells. 
- (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]; 
     mimageButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
     mimageButton.frame=CGRectMake(10, 10, 20, 20); 
     mimageButton.tag = 1; 
     //mimageButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
     //[mimageButton setImage:[UIImage imageNamed:@"alarm_ON.png”] //forState:UIControlStateNormal]; 
     //[mimageButton setImage:[UIImage imageNamed:@"alarm_OF.png”] //forState:UIControlStateSelected]; 

     onButtonView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)]; 
     onButtonView.tag = 2; 
     onButtonView.image = [UIImage imageNamed:@"alarm_ON.png”]; 
     [mimageButton setBackgroundImage:[onButtonView.image stretchableImageWithLeftCapWidth:0.0 topCapHeight:0.0] forState:UIControlStateNormal]; 
     [cell.contentView addSubview:mimageButton]; 
     [mimageButton addTarget:self action:@selector(changeMapType:) forControlEvents: UIControlEventTouchUpInside]; 

    } 

你能帮我纠正一下代码吗?

+0

你的问题并不清楚..请尝试改进.. – 2011-11-28 09:05:12

+0

rajesh在我的单元格我已经创建运行时按钮和按钮我把背景图像切换动作改变图像on.png和of.png它工作但当我滚动我的单元格我的图像从按钮消失如何处理特定按钮切换动作 – Rocky

+0

可能的重复http://*.com/questions/8294981/how-to-togglebutton-hold-all-button-states- for all all the table-rows-in-iphone/8355402#8355402 –

尝试给该按钮的标签作为表格的行号。然后检查按钮按下方法中的标签,然后执行逻辑来更改图像。

-(void)changeMapType:(id)sender 
{ 
    UIButton *button = (UIButton *)sender; 
    // Check tag of button 
    // Some code 
    //Change image after checking 
    [button setImage:yourImage forState:UIControlStateNormal]; 

} 
+0

我认为使用体面的方法继承UITableViewCell以刷新它在buttonPressed上的销售是一个更清洁的解决方案。 –

+0

7kv7可以ü详细解释如何在代码我做这个混淆 – Rocky

+0

@摇滚:检查我更新的答案 – visakh7

取一个数组,将选定的按钮标签存储在数组中,并在cellForRowAtIndex方法中显示按钮时。检查按钮标签是否在该数组中。如果它在那里显示你选择的按钮图像,或者未选择的按钮图像。