UIButton没有处理动画子视图

时间:2012-12-05 10:59:25

标签: objective-c uibutton uiviewanimation

我想在显示视图时在父视图上显示的子视图中添加两个按钮。按钮被正确初始化并显示,但按下时它们没有反应。有人知道为什么吗?这是我的代码:

-(void) viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];
    self.view.backgroundColor = [UIColor blackColor];
    //Animation View
    imageView= [[UIImageView alloc] initWithFrame:CGRectMake(0, 499, 320, 0)];
    imageView.image = [UIImage imageNamed:@"trans.png"];
    [imageView setClipsToBounds:YES];
    [imageView setContentMode:UIViewContentModeBottom];
    [self.view addSubview:imageView];


    [UIView animateWithDuration:1.0f
                          delay:0.5f
                        options:UIViewAnimationOptionCurveEaseOut
                     animations:^(void) {
                         imageView.frame = CGRectMake(0, 92, 320, 320);

                     }
                     completion:NULL];
    [self.view bringSubviewToFront:imageView];
    // Animation View Buttons
    //1 Amazon
    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
    UIImage *button=[UIImage imageNamed:@"button.png"];
    [button1 setImage:button forState:UIControlStateNormal];
    button1.frame = CGRectMake(0, 290, 80, 30);
    button1.backgroundColor=[UIColor whiteColor];
    button1.showsTouchWhenHighlighted=YES;

    [button1 addTarget:self
                action:@selector(openAmazon:)
     forControlEvents:UIControlEventTouchUpInside];
    [imageView addSubview:button1];

    //2 iTunes
    UIButton *button2 = [UIButton buttonWithType:UIButtonTypeCustom];
    [button2 setImage:button forState:UIControlStateNormal];
    button2.frame = CGRectMake(82, 290, 80, 30);
    button2.backgroundColor=[UIColor whiteColor];
    button2.showsTouchWhenHighlighted=YES;

    [button2 addTarget:self
     action:@selector(openiTunes:)
     forControlEvents:UIControlEventTouchUpInside];
    [imageView addSubview:button2];



}

3 个答案:

答案 0 :(得分:5)

您需要使用选项UIViewAnimationOptionAllowUserInteraction

...
options:UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionAllowUserInteraction
...

答案 1 :(得分:1)

确保在imageView上设置userInteractionEnabled属性:

[imageView setUserInteractionEnabled:YES];

答案 2 :(得分:1)

[self.view bringSubviewToFront:imageView];

在增加框架后,您将图像视图置于前面,这会阻止按钮操作