我正在尝试创建一个带有可单击 UIImageView 数组的 ScrollView 。我的目标是,当单击 ImageView 时,它返回它在数组中占据的位置。问题是我不知道如何“捕获”该职位的号码。我怎么做?
到目前为止我已经:
- (IBAction)respondToTapGesture:(UITapGestureRecognizer *)recognizer {
NSLog(@"%@",)//here is where i want to return the element's position.
}
-(void) preenchemenu {
[menu setContentSize:CGSizeMake(400, 91)];
int x=0;
imagensmenu=[NSArray arrayWithObjects:[UIImage imageNamed:@"teste2.tiff"],[UIImage imageNamed:@"teste2.tiff"], nil];
for (int i = 0; i <3; i++) {
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(x,0 , 90, 91)];
x=x+90;
imageView.image = [imagensmenu objectAtIndex:i];
imageView.tag = 1000+ i;
imageView.userInteractionEnabled = YES;
imageView.multipleTouchEnabled = YES;
UITapGestureRecognizer *tapRecognizermenu = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(respondToTapGesture:)];
tapRecognizermenu.numberOfTapsRequired = 1;
[imageView addGestureRecognizer:tapRecognizermenu];
[menu addSubview:imageView];
}
}
最佳答案
您可以创建一个数组来保存 imageView,然后在点击时找到 imageView 在该数组中的位置。
为此添加属性
@property (nonatomic, strong) NSMutableArray *imageViews;
在init中初始化
- (id)init...
{
self = [super init...
if (self) {
_imageViews = [NSMutableArray array];
}
return self;
}
然后稍微修改当前的方法,将 imageView 以及菜单的 subview 添加到该数组中
[self.imageViews addObject:imageView];
[menu addSubview:imageView];
然后在你的手势识别器回调中你可以做
- (void)respondToTapGesture:(id)sender;
{
UIView *view = [sender view];
NSLog(@"%d", [self.imageViews indexOfObject:view]);
}
关于ios - 从 ScrollView 返回 NSArray 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15341715/