开发者

UIButton doesn't interact in UIScrollView

开发者 https://www.devze.com 2023-01-27 08:05 出处:网络
I have a windowed (e.g. not a full-screen) UIScrollView (inside a UIView) which scrolls through groups of UIImageViews with UIButtons on them (the idea being you click the button to do something with

I have a windowed (e.g. not a full-screen) UIScrollView (inside a UIView) which scrolls through groups of UIImageViews with UIButtons on them (the idea being you click the button to do something with the displayed image). The UIButton does take any touch events - how can I fix it?

I've read this, this, this, this and this - but I either don't understand the answer or its implications, or it's not really relevant.

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 = kScrollObjHe开发者_StackOverflowight;
    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


try

[imageView setUserInteractionEnabled:YES]
0

精彩评论

暂无评论...
验证码 换一张
取 消