动画后UIButton没有响应

Fah*_*kar 5 objective-c uibutton cgaffinetransform ibaction ios

我希望首先从下面的链接下载该项目,然后继续问题(仅36kb)

下载链接

一开始我的情况如下.

在此输入图像描述

当我单击"我的办公室"按钮时,我正在调用actionSeenButton将要打印的操作NSLog(@"actionSeenButton");

- (IBAction)actionSeenButton:(id)sender {
    NSLog(@"actionSeenButton");
}
Run Code Online (Sandbox Code Playgroud)

这很完美.

当我点击显示隐藏按钮时,我按100滑动视图并显示我顶部的图像和按钮,如下图所示

在此输入图像描述

使用的代码是

- (IBAction)showHiddenButton:(id)sender {
    CGAffineTransform translation = CGAffineTransformIdentity;
    translation = CGAffineTransformMakeTranslation(0, 100);
    [UIView beginAnimations:nil context:nil];
    self.view.transform = translation;
    [UIView commitAnimations];
}
Run Code Online (Sandbox Code Playgroud)

当我点击这个按钮时,我正在调用actionHiddenButton将要打印的动作NSLog(@"actionHiddenButton");

- (IBAction)actionHiddenButton:(id)sender {
    NSLog(@"actionHiddenButton");
}
Run Code Online (Sandbox Code Playgroud)

但问题是,当我点击我看到的新按钮时,动作没有被调用.

知道为什么会这样吗?


注意

当我将顶部隐藏按钮从y = -70移动到y = 170时,动作将被调用.

示例项目可以从这里下载

我想要实现的是,通过向下移动视图,在一行的顶部显示三个按钮(如菜单).

Fah*_*kar 0

哎呀!!!下面是我的做法。

。H

添加了新变量。

@property (retain, nonatomic) NSString *hideStatus;
Run Code Online (Sandbox Code Playgroud)

.米

-(void) viewDidAppear:(BOOL)animated {
    NSLog(@"viewDidAppear");
    CGAffineTransform translation = CGAffineTransformIdentity;
    translation = CGAffineTransformMakeTranslation(0, -100);
    self.view.transform = translation;
    self.view.clipsToBounds = YES;
    [UIView commitAnimations];
    self.view.frame = CGRectMake(0,-80,320,560);
    hideStatus = @"hidden";
}

- (IBAction)showHiddenButton:(id)sender {
    NSLog(@"hideStatus===%@", hideStatus);
    CGAffineTransform translation = CGAffineTransformIdentity;
    if ([hideStatus isEqualToString:@"hidden"]) {
        translation = CGAffineTransformMakeTranslation(0, 0);
        hideStatus = @"shown";
    } else {
        translation = CGAffineTransformMakeTranslation(0, -100);
        hideStatus = @"hidden";
    }

    [UIView beginAnimations:nil context:nil];
    self.view.transform = translation;
    self.view.clipsToBounds = YES;
    [UIView commitAnimations];
}
Run Code Online (Sandbox Code Playgroud)

附件是示例项目。您可以从这里下载。