【问题标题】:Change image for UIButton created inside UITableView更改在 UITableView 中创建的 UIButton 的图像
【发布时间】:2011-09-08 11:08:49
【问题描述】:

我在UITableView 中创建了一个UIbutton。我有多行。在触摸特定行的按钮时,我希望更改该特定按钮的图像。我添加的按钮是一个复选框。所以每次我触摸按钮时,它的图像都会改变。

这是我的代码:

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

/*  

Some code  

*/  

 //Checkbox
        UIImage *buttonImage = [UIImage imageNamed:@"arrow-not-checked.png"];
        btnConfirm = [UIButton buttonWithType:UIButtonTypeCustom];
        btnConfirm.tag =[[arrID objectAtIndex:indexPath.row] intValue]; 
        [btnConfirm setImage:buttonImage forState:UIControlStateNormal];
        btnConfirm.frame = CGRectMake(checkboxXX, 10.0, buttonImage.size.width, buttonImage.size.height);
        [btnConfirm addTarget:self action:@selector(AddToCart:) forControlEvents:UIControlEventTouchUpInside];
        [cell.contentView addSubview:btnConfirm];  

}  



-(void)AddToCart:(id)sender
{
    UIButton *btnTemp=sender;
    int iTag = btnTemp.tag;  

    // I want to change image of sender

}  

【问题讨论】:

  • 您要更改所有按钮的相似图像吗?
  • 是的。复选框(按钮)在每一行中。
  • 但是在触摸一个按钮时,只有那个按钮的图像应该改变。

标签: iphone uitableview uibutton


【解决方案1】:
-(void)AddToCart:(id)sender

{
UIButton *btnTemp = (UIButton *)sender;
int iTag = btnTemp.tag;  

// I want to change image of sender
[btnTemp setImage:yourImage forState:UIControlStateNormal];

}  

试试这个。希望这会有所帮助。

【讨论】:

  • 非常感谢。堆栈溢出说我可以在 3 分钟内接受你的回答。我会这样做的:)
  • 嗨@7KV7,如果我选择另一个复选框,那么应该取消选中前一个复选框
【解决方案2】:

这个怎么样:

-(void)AddToCart:(UIButton *) addButton
{
   [addButton setImage:yourImage forState: UIControlStateNormal];
}  

发送对象的类型不必是id

【讨论】:

    【解决方案3】:

    试试这个……

    -(void)AddToCart:(id)sender
    
    {
    UIButton *btnTemp = (UIButton *)[yourTableView viewWithTag:sender];
    int iTag = btnTemp.tag;  
    
    // I want to change image of sender
    [btnTemp setImage:yourImage forState:UIControlStateNormal];
    
    }  
    

    【讨论】:

    • 感谢 Maulik 的帮助。 :)
    • UIButton *btnTemp = (UIButton *)[yourTableView viewWithTag:sender]; 会起作用吗?当你说[yourTableView viewWithTag:sender];时你会得到按钮
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多