iPhone开发——动态加载图片动画

Home / iOS MrLee 2015-6-4 3069

1、新建视图控制器ImageViewController(不带xib),作为根视图控制器,ImageViewController.h如下:
#import 
@interface ImageViewController : UIViewController
@property(strong,nonatomic)UIImageView *imageView;
@property(strong,nonatomic)UIImage *desktop;
-(void)loadImage;
@end
ImageViewController.m如下:
#import "ImageViewController.h"  
@implementation ImageViewController  
@synthesize imageView;  
@synthesize desktop;  
  
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil  
{  
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];  
    if (self) {  
        // Custom initialization  
    }  
    return self;  
}  
  
- (void)loadView  
{  
    // If you create your views manually, you MUST override this method and use it to create your views.  
    // If you use Interface Builder to create your views, then you must NOT override this method.  
    NSLog(@"loadView");  
    UIView *view = [[ UIView alloc] initWithFrame:[ UIScreen  
                                                   mainScreen].applicationFrame] ;  
    UIColor *bgColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:1.0];  
    [view setBackgroundColor:(bgColor)];  
    self.view = view;  
    desktop = [UIImage imageNamed:@"desktop.png"];  
      
    [self performSelector:@selector(loadImage) withObject:nil afterDelay:0.1];  
}  
  
-(void)loadImage{  
    if(imageView!=nil){  
        [imageView removeFromSuperview];  
    }  
    //初始时,将imageView的宽度设置为0,这样就隐藏起来了  
    imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 0, desktop.size.height)];  
    [imageView setImage:desktop];  
      
    [self.view addSubview:imageView];  
    //设置动画效果  
    CGContextRef context = UIGraphicsGetCurrentContext();  
    //开始播放动画  
    [UIView beginAnimations:nil context:context];  
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  
    //[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];  
    //[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];  
    //[UIView setAnimationCurve:UIViewAnimationCurveLinear];  
    [UIView setAnimationDuration:1.5];  
    //imageView最终的宽度为desktop.size.width  
    [imageView setFrame:CGRectMake(0, 0, desktop.size.width, desktop.size.height)];     
    [UIView commitAnimations];  
}  
  
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{  
    [self loadImage];  
}  
  
- (void)viewDidLoad  
{  
    [super viewDidLoad];  
    // Do any additional setup after loading the view, typically from a nib.  
}  
  
- (void)viewDidUnload  
{  
    [super viewDidUnload];  
    // Release any retained subviews of the main view.  
    imageView = nil;  
    desktop = nil;  
}  
  
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
{  
    return (interfaceOrientation == UIInterfaceOrientationPortrait);  
}  
  
@end 
2、运行效果是图片从左至右慢慢显示出来,如下,

本文链接:https://www.it72.com/3113.htm

推荐阅读
最新回复 (0)
返回