如何在单击时更改表格视图中的 UIImageView 的图像



我有一个动态填充的表视图。我的cellForRowAtIndexPath方法的代码是:

- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {
UIImage * ImageFavorited = [UIImage imageNamed:@"Favorited"];
        UIImageView *ImageViewFavorited = (UIImageView *)[cell viewWithTag:7];
        ImageViewFavorited.image =ImageFavorited;
        ImageViewFavorited.userInteractionEnabled = YES;

        NSString *uiid = [[collectionFromData valueForKey:@"id"] objectAtIndex:(indexPath.row)];
        MYTapGestureRecognizer *tapped = [[MYTapGestureRecognizer alloc] initWithTarget:self action:@selector(myFunction:)  ];
        tapped.data = uiid;
        tapped.numberOfTapsRequired = 1;
        [ImageViewFavorited addGestureRecognizer:tapped];
}
我知道,

我知道,MYTapGestureRecognizer看起来很奇怪,我实际上扩展了UITapGestureRecognizer,所以我可以用它传递数据。(感谢 StackOverFlow 用户),所以我现在的问题是我想在用户点击后更改我点击的 UIImageview 的图像。现在,我检测到myfunction功能中的单击,但我似乎找不到更改图像的方法。

myfunction的代码是:

-(void)myFunction :(id) sender
{
    MYTapGestureRecognizer *tap = (MYTapGestureRecognizer *)sender;
    NSLog(@"data is  = %@", tap.data);
}

这种情况的最佳做法。

而不是UIImage在您的viewController中使用UIButton和绑定操作。设置default的按钮图像,并Selected状态情节提要或根据操作通过代码。

buttonAction

sender.selected = !sender.selected;
tableView.raeloadData();

仅此而已。如果仍然面临问题,那么让我下电脑。

将以下内容添加到 myFunction 以获取发件人视图:

[(UIGestureRecognizer *)sender view]

然后,您可以更改该视图属性,因为在您的情况下它是UIImageView,只需将其转换为UIImageView并更改图像属性即可。

完成的解决方案将是:

[(UIImageView*) [(UIGestureRecognizer *)sender view]] setImage:[UIImage imageNamed:”blah”]] 

相关内容

最新更新