可能重复:
iphone fading of images
如何实现将动画淡出到一组图像(图像阵列)中。图像将逐一显示。当我使用下面给出的代码时,它将只显示一个简单的幻灯片放映。
NSArray *imagearray = [NSArray arrayWithObjects:
[UIImage imageNamed:@"image1.png"],
[UIImage imageNamed:@"imag2.png"],[UIImage imageNamed:@"imag3.png"],[UIImage imageNamed:@"imag4.png"],[UIImage imageNamed:@"imag5.png"],[UIImage imageNamed:@"imag6.png"],[UIImage imageNamed:@"imag7.png"],nil];
imageview.animationImages=imagearray;
imageview.animationDuration = 10.00;
imageview.animationRepeatCount = 0;
[imageview startAnimating];
如何实现淡化效果?
答案 0 :(得分:3)
为视图的alpha属性设置动画:
[UIView animateWithDuration:5 animations:^{
imageview.alpha = 0;
}];
答案 1 :(得分:2)
请访问此堆栈溢出问题iphone fading of images
- (void)viewDidLoad {
imgView.animationImages=[NSArray arrayWithObjects:
[UIImage imageNamed:@"lori.png"],
[UIImage imageNamed:@"miranda.png"],
[UIImage imageNamed:@"taylor.png"],
[UIImage imageNamed:@"ingrid.png"],
[UIImage imageNamed:@"kasey.png"],
[UIImage imageNamed:@"wreckers.png"], nil];
imgView.animationDuration=20.0;
imgView.animationRepeatCount=0;
[imgView startAnimating];
[self.view addSubview:imgView];
[imgView release];
//The timers time interval is the imageViews animation duration devided by the number of images in the animationImages array. 20/5 = 4
NSTimer *timer = [NSTimer timerWithTimeInterval:4.0
target:self
selector:@selector(onTimer)
userInfo:nil
repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
[timer fire];
[super viewDidLoad];
}
//It is important that the animation durations within these animation blocks add up to 4
//(the time interval of the timer). If you change the time interval then the time intervals
//in these blocks must also be changed to refelect the amount of time an image is displayed.
//Failing to do this will mean your fading animation will go out of phase with the switching of images.
-(void)onTimer{
[UIView animateWithDuration:3.0 animations:^{
imgView.alpha = 0.0;
}];
[UIView animateWithDuration:1.0 animations:^{
imgView.alpha = 1.0;
}];
}