2010-11-27 3 views
0

J'ai un fenêtré (par exemple, pas un plein écran) UIScrollView (dans un UIView) qui défile à travers des groupes de UIImageViews avec UIButtons sur eux (l'idée étant que vous cliquez sur le bouton pour faire quelque chose avec l'image affichée). Le UIButton ne prend aucun événement tactile - comment puis-je le réparer?UIButton n'interagit pas UIScrollView

J'ai lu this, this, this, this et this - mais je ne comprends pas non plus la réponse ou de ses conséquences, ou il est pas vraiment pertinent.

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 

Répondre

4

essayer [imageView setUserInteractionEnabled:YES]

+0

Duh. Je ne peux pas croire que je n'ai pas essayé ça. Merci! – glenstorey

Questions connexes