欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS - UIImageView常见使用方法和多图动画播放

程序员文章站 2022-05-01 18:25:21
UIImageView 显示图片 // 创建对象 UIImageView *imageView = [[UIImageView alloc] init];...

UIImageView

显示图片

    // 创建对象
    UIImageView *imageView = [[UIImageView alloc] init];
    // frame
    imageView.frame = self.view.bounds;
    // 设置背景
    imageView.backgroundColor = [UIColor greenColor];
    // 设置图片
    imageView.image = [UIImage imageNamed:@"1"];

    /*
     // 带有Scale图片可能被拉伸
     UIViewContentModeScaleToFill,
     // Aspect比例,缩放是带比例的
     UIViewContentModeScaleAspectFit,
     UIViewContentModeScaleAspectFill,
     // 不会被拉伸
     UIViewContentModeRedraw,
     UIViewContentModeCenter,
     UIViewContentModeTop,
     UIViewContentModeBottom,
     UIViewContentModeLeft,
     UIViewContentModeRight,
     UIViewContentModeTopLeft,
     UIViewContentModeTopRight,
     UIViewContentModeBottomLeft,
     UIViewContentModeBottomRight,*/
    // 设置图片内容模式
    imageView.contentMode = UIViewContentModeScaleAspectFit;
    // 是否裁多余的
    imageView.clipsToBounds = YES;
    // 创建毛玻璃
    UIToolbar *toolbar = [[UIToolbar alloc] init];
    // 设置毛玻璃尺寸
    toolbar.frame = imageView.bounds;
    // 设置毛玻璃的样式
    toolbar.barStyle = UIBarStyleBlack;
    toolbar.alpha = 0.9;
    [imageView addSubview:toolbar];    
    // 加载到控制器view中
    [self.view addSubview:imageView];

frame

第一种和第二种

// 创建对象
//    UIImageView *imageView = [[UIImageView alloc] init];
//    imageView.image = [UIImage imageNamed:@"1"];
    // frame设置方式
    // 第一种
//    imageView.frame = CGRectMake(0, 0, 500, 833);
    // 第二种
    UIImage *image = [UIImage imageNamed:@"1"];
    imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height);
    imageView.image = image;

第三种

// 第三种
    UIImage *image = [UIImage imageNamed:@"1"];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, image.size.width, image.size.height)];
    imageView.image = image;

第四种

// 第四种
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1"]];
// 修改位置
    imageView.center = CGPointMake(10, 10);
// 加载到控制器view中
    [self.view addSubview:imageView];

取图片

// 加载图片
    // 方式一
//    self.imageView.image = [UIImage imageNamed:@"1"];

    // 方式二
    NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"jpg"];
    self.imageView.image = [UIImage imageWithContentsOfFile:path];
    // 放入Assets.xcassets中的路径,取不到,不能使用imageWithContentsOfFile:
    // 只能使用imageNamed:
    // 放入项目中的图片两中都可以取到

多图片组成动画

1.加载资源

iOS - UIImageView常见使用方法和多图动画播放
如果建立真实文件夹,在调用文件夹中的东西的时候需要将路径全部写出,如果是虚拟文件夹则不用

2.抽取到的加载图片的方法

- (NSArray *)loadAllImageWithimagePrefix:(NSString *)imagePrefix count:(int)count{
    NSMutableArray *images = [NSMutableArray array];
    for (int i = 0; i < count; i++) {
        // 获取图片名称
        NSString *imageName = [NSString stringWithFormat:@"%@_%d", imagePrefix, i + 1];
        // 以名称创建UIImage
        UIImage *image = [UIImage imageNamed:imageName];
        // 装入数组
        [images addObject:image];
    }
    // 返回图片数组
    return images;
}
- (void)viewDidLoad {
    [super viewDidLoad];  
    self.useImage = [self loadAllImageWithimagePrefix:@"Prefix" count:250];
}

抽取对动画播放的方法

- (void)playAnimationWithImagesArray:(NSArray *)imagesArray repeatCount:(int)count duration:(float)duration{
    // 设置播放动画图片
    self.imageView.animationImages = imagesArray;
    // 设置播放次数 0就是不限次
    self.imageView.animationRepeatCount = count;
    // 播放时长
    self.imageView.animationDuration = duration;
    // 播放
    [self.imageView startAnimating];
}