我有一个动态填充的表格视图。我的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);
}
答案 0 :(得分:0)
将以下内容添加到myFunction以获取发件人视图:
[(UIGestureRecognizer *)sender view]
然后你可以改变那些视图属性,因为在你的情况下它是一个UIImageView,只需将其转换为UIImageView并更改图像属性。
完成的解决方案将是:
[(UIImageView*) [(UIGestureRecognizer *)sender view]] setImage:[UIImage imageNamed:”blah”]]
答案 1 :(得分:0)
针对这种情况的最佳做法。
而不是UIImage
使用UIButton
并绑定viewController
中的操作。
设置default
和Selected
状态故事板的按钮图像,或按照您的操作设置代码。
在buttonAction
sender.selected = !sender.selected;
tableView.raeloadData();
多数民众赞成。 如果仍然面临问题那么让我知道。