动画图像不在视图中

时间:2012-10-03 13:57:52

标签: objective-c xcode animation sdk uiimageview

我想要一个按钮来触发以下操作。单击时,它应该将我的徽标向上推出视图并将其删除。当它再次被点击时,它应该做相反的事情。意味着创建图像并将其向下推回到视图中。我正在使用故事板来设置我的界面。我的问题是我无法触发动画。在下面发布我的代码:

在TableViewController.h中

@interface TableViewController : UITableViewController{

    BOOL status;

}

@property (weak, nonatomic) IBOutlet UIImageView *animateLogo;
@property (weak, nonatomic) IBOutlet UIButton *button;

- (IBAction)onClick:(id)sender;
- (void)showHideView;

@end

在TableViewController.m中

@synthesize animateLogo, button;

- (void)viewDidLoad{

    [super viewDidLoad];

    status = YES;

}

- (IBAction)onClick:(id)sender{
[self showHideView];
}

if(status){

    [UIView
     animateWithDuration:1.5
     delay:0
     options:UIViewAnimationCurveEaseOut
     animations:^{
         [animateLogo setFrame:CGRectOffset([animateLogo frame], 0, -animateLogo.frame.size.height)];
     }
     completion:^(BOOL completed) {}
    ];

    status = NO;
    [button setTitle:@"Show" forState:UIControlStateNormal];

}
else{

    [UIView
     animateWithDuration:1.5
     delay:0
     options:UIViewAnimationCurveEaseOut
     animations:^{
         [animateLogo setFrame:CGRectOffset([animateLogo frame], 0, animateLogo.frame.size.height)];
     }
     completion:^(BOOL completed) {}
    ];

    status = YES;
    [button setTitle:@"Hide" forState:UIControlStateNormal];

}

}

编辑:

如果我以编程方式对UIImageView进行编码,则动画正在运行。所以问题在于故事板以某种方式。我更喜欢使用故事板,这样我就可以更好地忽略布局。

UIImage *test = [UIImage imageNamed:@"logo.png"];
    animateLogo = [[UIImageView alloc] initWithImage:test];
    [self.view addSubview:animateLogo];
    [animateLogo setFrame:CGRectOffset([animateLogo frame], 0, animateLogo.frame.size.height)];

1 个答案:

答案 0 :(得分:1)

问题解决了。我使用了不同的方法,我为UIView而不是UIImageView设置了动画。不是一种魅力。