Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从ScrollView返回NSArray中的位置_Ios_Objective C_Event Handling_Nsarray - Fatal编程技术网

Ios 从ScrollView返回NSArray中的位置

Ios 从ScrollView返回NSArray中的位置,ios,objective-c,event-handling,nsarray,Ios,Objective C,Event Handling,Nsarray,我正在尝试创建一个带有可单击UIImageView数组的滚动视图。我的目标是,当单击ImageView时,它返回它在数组中所处的位置。问题是我不知道如何“抓住”这个职位的编号。我该怎么做 到目前为止,我已经: - (IBAction)respondToTapGesture:(UITapGestureRecognizer *)recognizer { NSLog(@"%@",)//here is where i want to return the element's position.

我正在尝试创建一个带有可单击UIImageView数组的滚动视图。我的目标是,当单击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];
    }
}
-(iAction)响应捕捉手势:(UITapGestureRecognitor*)识别器{
NSLog(@“%@”,)//这里是我想要返回元素位置的地方。
}
-(无效)预选菜单{
[菜单设置contentsize:CGSizeMake(400,91)];
int x=0;
imagensmenu=[NSArray arrayWithObjects:[UIImage IMAGENAME:@“teste2.tiff”],[UIImage IMAGENAME:@“teste2.tiff”],无];

对于(int i=0;i,您可以创建一个数组来容纳您的imageView,然后在点击该数组时找到您的imageView在该数组中的位置

为此添加属性

@property (nonatomic, strong) NSMutableArray *imageViews;
在init中初始化它

- (id)init...
{
  self = [super init...
  if (self) {
    _imageViews = [NSMutableArray array];
  }
  return self;
}
然后稍微修改当前方法,将ImageView添加到此数组以及菜单的子视图

[self.imageViews addObject:imageView];
[menu addSubview:imageView];
然后,在手势识别器中,您可以执行以下操作

- (void)respondToTapGesture:(id)sender;
{
  UIView *view = [sender view];
  NSLog(@"%d", [self.imageViews indexOfObject:view]);
}

只需通过查找索引即可

- (IBAction)respondToTapGesture:(UITapGestureRecognizer *)recognizer
{
  UIView *view = recognizer.view;
  NSLog(@"Index of image in array is %d", view.tag-1000);
}
我认为您可以使用recognizer.view来响应Tap手势:,然后检查视图的标记。