下面,我添加了使用TableViewCell的代码
MyMedsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyMedsTableViewCell" forIndexPath:indexPath];
cell.autoScrolling.hidden = NO;
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapping:)];
singleTap.numberOfTapsRequired = 1;
[cell.autoScrolling setUserInteractionEnabled:YES];
[cell.autoScrolling addGestureRecognizer:singleTap];
在这里我添加了TableViewCell的头文件
#import <UIKit/UIKit.h>
#import "CustomView.h"
#import <AutoScrollLabel/CBAutoScrollLabel.h>
@interface MyMedsTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet CBAutoScrollLabel *autoScroll;
@property (weak, nonatomic) IBOutlet UIImageView *autoScrolling;
下面,我添加了单击imageview后用来调用单元格属性的方法
-(void)singleTapping:(UIGestureRecognizer *)recognizer {
NSLog(@"image clicked");
}
我尝试了不同的方法,但仍然没有。有人可以帮忙吗?
答案 0 :(得分:2)
据我了解,您在标题中的三个蓝色虚线imageView中检测到点击时遇到问题。
因此解决方案是使用UIButton代替标题中的UIImageView设置按钮图像属性的三个蓝色虚线图像。
在您的cellForRowAt中使用
cell.myButton.tag = indexPath.row;
现在在viewController类中为此按钮添加一个动作。
- (IBAction)myButton:(UIButton *)sender {
// Here you can identify button by its tag value
NSLog(@"Button %ld tapped", (long)sender.tag);
}
答案 1 :(得分:0)
1)使用UIBUtton insteaf的UIImageView是更好的选择。
2)如果您不能使用1)并且必须使用UIImageview,则可以使用以下命令访问单元格:
首先将Imageview的标签分配给Indexpath.row。
cell.autoScrolling.tag = indexPath.row;
您可以在tapgesturerecogniser方法中使用此标记。
-(void)singleTapping:(UIGestureRecognizer *)recognizer {
UIImageView *autoScrolling = (UIImageView *)[recognizer view];
long tag = autoScrolling.tag;
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:tag inSection:0];
MyMedsTableViewCell *cell = (MyMedsTableViewCell *)[tblRegister cellForRowAtIndexPath:indexPath];
//You can access property of cell now.
}