点击它时动画与图像

时间:2014-02-16 14:16:55

标签: ios uiimage

我希望当我点击图像时,会出现另一张图像1或2秒。

我有两个图像(UIImage),一个用于按下,另一个用于未按下。

是这样的吗? :

[UIView animateWithDuration: 0.2 delay: 0.0 options: UIViewAnimationOptionAutoreverse animations:^{
    pressed.alpha = 1.0;
    unPressed.alpha = 0.0;
}completion:^(BOOL finished){
    pressed.alpha = 0.0;
    unPressed.alpha = 1.0;
}];

但是我看不到按下的图像。

编辑:我的问题是将图像设置为我认为的UIImageView,因为当我点击它时会出现按下的图像但是未显示未压缩的图像

我想要类似的任何内容:

[UIView animateWithDuration: 2.0 delay: 0.0 options: UIViewAnimationOptionAutoreverse animations:^{
    pressed.alpha = 1.0;
    unPressed.alpha = 0.0;
    self.imageButton.image = pressed.image;
}completion:^(BOOL finished){
    pressed.alpha = 0.0;
    unPressed.alpha = 1.0;
    self.imageButton.image = unPressed.image;
}];

3 个答案:

答案 0 :(得分:1)

首先,您将动画持续时间设置为.2,这样您可能希望将持续时间增加到1.0或2.0,如果您实际上希望它显示1或2秒。

其次,我假设这些图像彼此重叠,所以当两个alpha都为1时,仍然只会显示其中一个图像。确保在开始动画之前隐藏unPressed;然后确保在结束动画后隐藏pressed

unPressed.alpha = 0;

[UIView animateWithDuration: 2.0 delay: 0.0 options: UIViewAnimationOptionAutoreverse animations:^{
    pressed.alpha = 1.0;
} completion:^(BOOL finished){
    pulsando.alpha = 0.0;
    pressed.alpha = 0.0;
    unPressed.alpha = 1.0;
}];

(另外还有一个问题......你说你希望图像显示1或2秒。你想让图像出现吗?或者你想让它淡入?只需要仔细检查......因为如果你只是希望它出现,你不需要动画块。)

编辑:(响应您的编辑)

好像你根本不需要一个动画块,而你只是想让图像显示2秒钟。在这种情况下,按下按钮时,显示图像,然后在2秒后隐藏图像。例如:

- (IBAction)buttonSelected:(UIButton*)sender {
    pressed.alpha = 1.0;
    unPressed.alpha = 0.0;
    [self performSelector:@selector(hidePressedImage) withObject:nil afterDelay:2.0];
}

- (void)hidePressedImage {
    pressed.alpha = 0.0;
    unPressed.alpha = 1.0;
}

答案 1 :(得分:0)

两个图像,但有三个变量。每次运行此功能时,您都会看到未压缩的图像+按下的图像(您将看到稍后添加到视图中的图像,因为它将在前面)。

答案 2 :(得分:0)

也许按下的图像与正常重叠?请尝试以下方法:

[UIView animateWithDuration: 0.2 delay: 0.0 options: UIViewAnimationOptionAutoreverse animations:^{
    pressed.alpha = 1.0;
    unPressed.alpha = 0.0;
}completion:^(BOOL finished){
    pulsando.alpha = 0.0;
    unPressed.alpha = 1.0;
    pressed.alpha = 0.0;
}];