ios开发之实现提示框动画效果

本文详细介绍了在iOS开发中如何实现提示框的动画效果,通过实例分享了相关技巧,对于需要在项目中添加此类功能的开发者具有参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     最近的项目中有用到,就总结了一下,希望对你也有所帮助....微笑

方法一:使用UIImageView自带的方法来实现,这也是我推荐的实现方法。
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:[UIImage imageNamed:@"1.png"],[UIImage imageNamed:@"2.png"],[UIImage imageNamed:@"3.png"],[UIImage imageNamed:@"4.png"],[UIImage imageNamed:@"5.png"], nil nil];  
 
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 200, 80, 30)]; 
 
imageView.animationImages = array; //动画图片数组  
imageView.animationDuration = 2; //执行一次完整动画所需的时长  
//    gifImageView.animationRepeatCount = 0;  //动画重复次数 0表示无限次,默认为0  
[imageView startAnimating];  
[self.view addSubview:imageView];  

方法二:使用UIImageView+NSTimer(定时器)来实现,如果没有猜错的话,第一种方式内部的实现方法也是使用了定时器,只不过我们第二种方法是自己DIY一个属于自己的
控件,自己想要扩展什么功能就扩展什么。

#import <UIKit/UIKit.h>  
 
@interface imageAnimation : UIImageView  
 
@property (strong, nonatomic) NSTimer *animation_timer;  
 
@property (strong, nonatomic) NSMutableArray *imageArray;  
 
@property (assign) int currentIndex;  
 
@property (assign) float interval;  
- (void)startLoading;  
 
- (void)stopLoading;  
 
- (void)initLoadingView:(NSMutableArray *)imageArray timeInterval:(float)time;  
 
@end  



#import "imageAnimation.h"  
 
@implementation imageAnimation  
@synthesize animation_timer = _animation_timer;  
@synthesize imageArray = _imageArray;  
@synthesize currentIndex = _currentIndex;  
@synthesize interval = _interval;  
 
 
- (id)initWithFrame:(CGRect)frame  
{  
    self = [super initWithFrame:frame];  
    if (self) {  
        // Initialization code  
          
    }  
    return self;  
}  
 
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
*/  
 
- (void)initLoadingView:(NSMutableArray *)imageArray timeInterval:(float)time{  
    self.imageArray = imageArray;  
    self.interval = time;  
      
    self.animation_timer = [NSTimer scheduledTimerWithTimeInterval:self.interval target:self selector:@selector(startLoading) userInfo:nil repeats:YES];  
}  
 
//开始loading  
- (void)startLoading{  
    if(!self.imageArray || self.imageArray.count < 1){  
        [self.animation_timer invalidate];  
        return;  
    }  
      
    self.currentIndex = (self.currentIndex +1)%self.imageArray.count;  
    self.image = [UIImage imageNamed:[self.imageArray objectAtIndex:self.currentIndex]];  
}  
 
//结束loading  
-(void)stopLoading{  
    [self.animation_timer invalidate];  
}   
@end  


方法三:使用UIWebView来加载gif图片,除非你要用到webView,不然就不要使用这种方式来实现
 
NSData *gif = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"1" ofType:@"gif"]];  
// view生成  
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(100, 100, 70, 30)];  
webView.userInteractionEnabled = NO;//用户不可交互  
[webView loadData:gif MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];  
[self.view addSubview:webView];      





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值