UIButton не взаимодействует в UIScrollView - PullRequest
0 голосов
/ 27 ноября 2010

У меня есть окно (например, не в полноэкранном режиме) UIScrollView (внутри UIView), которое прокручивает группы UIImageViews с UIButtons (идея заключается в том, что вы нажимаете кнопку, чтобы что-то сделать с отображаемым изображением). UIButton принимает любые события касания - как я могу это исправить?

Я прочитал это , это , это , это и это - но я либо не понимаю ответ или его значение, или это не совсем актуально.

NSUInteger i;
for (i = 1; i <= kNumImages; i++)
{
    Sentence *testSentence = [[managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:i];
    //NSLog(@"testSentence: %@", testSentence);

    //NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", i];
    //Your going to need to optimise this by creating another thumbnail image to use here.

    NSArray *paths       = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *imageName = [[paths objectAtIndex:0] stringByAppendingPathComponent:[testSentence image]];
    //NSLog(@"imageName: %@", imageName);

    UIImage *image = [[UIImage alloc] initWithContentsOfFile:imageName];
    //NSLog(@"image: %@", image);

    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    //NSLog(@"imageView: %@", imageView);

    [imageView setContentMode:UIViewContentModeScaleAspectFit];
    [imageView setBackgroundColor:[UIColor blackColor]];

    // setup each frame to a default height and width, it will be properly placed when we call "updateScrollList"
    CGRect rect = imageView.frame;
    rect.size.height = kScrollObjHeight;
    rect.size.width = kScrollObjWidth;
    imageView.frame = rect;
    imageView.tag = i;  // tag our images for later use when we place them in serial fashion

    imageView.frame = rect;

    UIButton *aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    [aButton setTitle:@"Play" forState:UIControlStateNormal];
    aButton.frame = CGRectMake(10, 10, 70, 70);
    [aButton setUserInteractionEnabled:YES];
    [aButton setEnabled:YES];
    [aButton setAlpha:1];

    UIView *buttonWrapperUIView = [[UIView alloc] init];

    [aButton addTarget:self action:@selector(clickPlay:) forControlEvents:UIControlEventTouchUpInside];

    [imageView addSubview:aButton];
    [imageView bringSubviewToFront:aButton];

    [scrollView1 addSubview:imageView];

    NSLog(@"aButton %@", aButton);

    [image release];
    [imageView release];
}

[self layoutScrollImages];  // now place the photos in serial layout within the scrollview

1 Ответ

4 голосов
/ 27 ноября 2010

попробуй

[imageView setUserInteractionEnabled:YES]
...