1

我有带有自定义单元格的表格视图,它有按钮,我希望当用户单击该按钮时,按钮的图像应该改变任何想法如何做到这一点,因为我希望该 cellImage 按钮图像以另一种方法更改。

    [cell.theSyncButton addTarget:self action:@selector(syncButtonAction:) forControlEvents:UIControlEventTouchUpInside];
    [cell.theSyncButton setTag:indexPath.row];

方法:

-(IBAction)syncButtonAction:(id)sender{
    //   I want to change the cell.SyncButton image here 
}

任何想法如何做到这一点。

4

6 回答 6

2
[btnSync setImage:[UIImage imageNamed:@"refresh.png"] forState:UIControlStateNormal];
[btnSync setImage:[UIImage imageNamed:@"refresh-active.png"] forState:UIControlStateHighlighted];
于 2013-08-02T09:27:36.950 回答
2
-(IBAction)syncButtonAction:(id)sender{
    UIButton *btn = (UIButton *)sender;
   [btn setImage:img forState:UIControlStateSelected];
}
于 2013-08-02T09:31:13.847 回答
0

试试这个..

-(IBAction)syncButtonAction:(id)sender
{
    UIButton * syncButton = (UIButton *) sender;
    [syncButton setBackgroundImage: <NormalImage.png>
                          forState: UIControlStateNormal];
    [syncButton setBackgroundImage: <HighlightedImage.png
                          forState: UIControlStateHighlighted];
}
于 2013-08-02T09:20:46.343 回答
0

您所要做的就是:

  UIImage *img = [UIImage imageNamed:@"yourImage.png"];
  [cell.theSyncButton setImage:img forState:UIControlStateSelected];
于 2013-08-02T09:22:02.370 回答
0

这是我的解决方案:我使用 UIImageVIew 作为按钮

例如,starIcon 是一个 UIImageView,我将它作为按钮添加到我的自定义 UITableViewCell 中。ArticleCell 是我的自定义 UITableViewCell 类。

在 UITableView 数据源方法cellForRowAtIndexPath

ArticleCell* cell = [tableView dequeueReusableCellWithIdentifier:@"reused"];
if (cell==nil) {
    NSLog(@"init tableViewCell");
    cell = [[ArticleCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"reused"];
    UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(buttonCallback:)];
    gesture.numberOfTapsRequired=1;
    gesture.numberOfTouchesRequired=1;
    [cell.starIcon addGestureRecognizer:gesture];
    cell.starIcon.userInteractionEnabled=YES;
    NSLog(@"init tableViewCell end");        
}

确保设置userInteractionEnabled == true;

然后,在您的 buttonCallback 方法中,您可以通过

    -(void)buttonCallback:(UIGestureRecognizer*)gestureRecognizer{
       UIImageView* star = (UIImageView*)[gestureRecognizer view];
    }

所以,你可以改变你的 imageView。

于 2013-08-02T09:42:53.973 回答
0
-(IBAction)syncButtonAction:(id)sender{
        [button setImage:[UIImage imageNamed:@"yourimage.png"] forState:UIControlStateNormal];

}
于 2013-08-02T09:47:25.670 回答