每秒更改图像背景

时间:2011-07-26 12:56:33

标签: iphone xcode background uiimageview transition

我有两张图片:“back1”和“back2”我想要的是将“back1”放在背景上然后在2秒后将其改为“back2”并使用淡入淡出效果,然后将“back2”更改为“ back1“每两秒钟一次又一次地褪色效果。我该怎么办?我认为我必须使用CATransition或类似的东西。对不起我的英语我是法国人:/

3 个答案:

答案 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