Обнаружение касания в UIImageView в UIScrollView - PullRequest
2 голосов
/ 21 сентября 2010

У меня есть изображения в моем UIScrollview, который добавлен в View.
Пожалуйста, пройдите мой код-

@interface ScrollViewController : UIScrollView <UIScrollViewDelegate>{

    UIImageView *productImage;
    UILabel *productName;
    NSArray *productArray;
}
@property(nonatomic,retain) UIImageView *productImage;
@property(nonatomic,retain) UILabel *productName;
@property(nonatomic,retain) NSArray *productArray;

- (id)initWitProducts:(NSArray*)_data;
*.m*

- (id)initWitProducts:(NSArray *)_data
    if ((self = [super init])){
         productArray=[[NSArray alloc]initWithArray:_data];       
         [self setFrame:CGRectMake(0, 0, 320, 480)];
         int countList=[self.productArray count];
         self.contentSize=CGSizeMake(320, 585);


        for(int i=0;i<countList;i++)
        {

            productImage=[[UIImageView alloc]initWithImage:[UIImage imageNamed:[[productArray objectAtIndex:i]objectForKey:@"ProductImage"]]];

            productImage.frame=CGRectMake(95, 35+i*125, 100, 100);
            [productImage setUserInteractionEnabled:YES];
            [self addSubview:productImage];
        }
       return self;     
    }


 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event
 {
     if([[touches anyObject]view]==self.productImage)
     NSlog(@"Image Touched");
}

Это работает хорошо, но только для последнего изображения в массиве
штрихи Began не работает для других изображений в массиве
что я должен добавить здесь, чтобы обнаружить прикосновение ко всем изображениям (1-е, 2-е и т. д.) массива

Ответы [ 2 ]

0 голосов
/ 03 июля 2013

Это потому, что вы продолжаете обновлять переменную productImage, измените ваш код на

   UIImageView *imageInstance=[[UIImageView alloc]initWithImage:[UIImage imageNamed:[[productArray objectAtIndex:i]objectForKey:@"ProductImage"]]];
    imageInstance.frame=CGRectMake(95, 35+i*125, 100, 100);
    [imageInstance setUserInteractionEnabled:YES];
    [self addSubview:imageInstance];
0 голосов
/ 21 сентября 2010

Вы знаете все позиции изображений в UIScrollview, поэтому вы можете коснуться позиции на scrollView в позиции изображений в вашем массиве.И еще один момент - вы никогда не должны сравнивать объекты Objective-C, используя «==», всегда используйте метод «isEqual».

...