我希望当我点击图像时,会出现另一张图像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;
}];
答案 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;
}];