我有两张图片:“back1”和“back2”我想要的是将“back1”放在背景上然后在2秒后将其改为“back2”并使用淡入淡出效果,然后将“back2”更改为“ back1“每两秒钟一次又一次地褪色效果。我该怎么办?我认为我必须使用CATransition或类似的东西。对不起我的英语我是法国人:/
答案 0 :(得分:5)
使用static
变量有助于循环:
- (void)viewDidLoad{
myImages=[NSArray arrayWithObjects:@"bck2.png",@"bck3.jpg",@"bck1.jpg",nil];
updateBCK = [NSTimer scheduledTimerWithTimeInterval:(3600.0) target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
[updateBCK fire];
[super viewDidLoad];
}
将上述代码添加到viewdidload
后定义操作:
-(void)changeImage{
//background.alpha=0.5;
static int i=0;
if (i == [myImages count]){
i=0;
}
[UIImageView beginAnimations:nil context:NULL];
[UIImageView setAnimationDuration:0.6];
background.alpha=1;
background.image =[UIImage imageNamed:[myImages objectAtIndex:i]];
[UIImageView commitAnimations];
i++;
}
答案 1 :(得分:2)
U可以使用NSTimer实现此目的。通过NSTimer调用方法,该方法定期设置ur app的BG图像。希望这会有所帮助。
[super viewDidLoad];
UIView *mainView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
mainView.backgroundColor=[UIColor blackColor];
self.view=mainView;
[mainView release];
randomView=[[UIImageView alloc]initWithFrame:CGRectMake(30, 100, 100, 100)];
randomView.backgroundColor=[UIColor darkGrayColor];
[mainView addSubview:randomView];
[randomView release];
myImages=[[NSArray arrayWithObjects:@"arrow.jpeg",@"default.jpeg",@"user.jpeg",@"home.jpeg", nil]retain];
timer = [NSTimer scheduledTimerWithTimeInterval:(2.0) target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
[timer fire];
NSLog(@"%@",myImages);
在viewDidLoad方法中添加上述代码。
-(void)changeImage{
randomView.alpha=0.5;
if(i>3){
i=0;
[UIImageView beginAnimations:nil context:NULL];
[UIImageView setAnimationDuration:0.6];
randomView.alpha=1;
randomView.image =[UIImage imageNamed:[myImages objectAtIndex:i]];
[UIImageView commitAnimations];
i+=1;}
else{
[UIImageView beginAnimations:nil context:NULL];
[UIImageView setAnimationDuration:0.6];
randomView.alpha=1;
randomView.image =[UIImage imageNamed:[myImages objectAtIndex:i]];
[UIImageView commitAnimations];
i+=1;}
在名为 - (void)changeImage
的用户定义方法中添加上述代码答案 2 :(得分:2)
在iOS 4及更高版本上,您可以使用动画块 - 这非常快,并提供更清晰的界面。 见UIView - animateWithDuration