我有一个动态填充的表视图。我的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”]]