GXiOS

iOS开发--UIImageView

2019-05-05  本文已影响6人  Caesar_62dd

UIImageView控件

     //设置全屏
     //imageView.frame = self.view.bounds;
    //imageView.image = [UIImage imageNamed:@"1"];
    // 2.1 先拿到图片对象
    UIImage *image = [UIImage imageNamed:@"1"];
    imageView.image = image;
    imageView.backgroundColor = [UIColor blueColor];
    imageView.frame = CGRectMake(50, 100, 300, 200);
    [self.view addSubview:imageView];
    imageView.clipsToBounds = YES;
    //图片设置内容模式
    imageView.contentMode = UIViewContentModeScaleAspectFill;

设置毛玻璃

    UIToolbar *toolBar = [[UIToolbar alloc] init];
    toolBar.frame = imageView.bounds;
    toolBar.barStyle = UIBarStyleBlackOpaque;
    toolBar.alpha = 0.77;
    [imageView addSubview:toolBar];

图片的两种加载方式:

1>imageNamed:
a. 就算指向它的指针被销毁,该资源也不会被从内存中干掉
b. 放到Assets.xcassets的图片,默认就有缓存
c. 使用场景:图片经常被使用
d. 加载Assets.xcassets这里面的图片:打包后变成Assets.car,拿不到路径,只能通过imageNamed:来加载图片,不能通过imageWithContentsOfFile:来加载图片

self.imageView.image = [UIImage imageNamed:@"1"];

2>imageWithContentsOfFile:
a. 指向它的指针被销毁,该资源会被从内存中干掉
b. 放到项目中的图片就没有缓存
c. 使用场景:不经常用,大批量的图片

 NSString *path = [[NSBundle mainBundle pathForResource:@"1"ofType:@"png"];
 self.imageView.image = [UIImage imageWithContentsOfFile:path];

UIImageView 动画

/**
 *  放招
 *
 *  @param images   图片数组
 *  @param count    播放次数
 *  @param duration 播放时间
 *  @param isStand  是否站立
 */
- (void)palyZhaoWithImages:(NSArray *)images count: (NSInteger)count duration:(NSTimeInterval)duration isStand:(BOOL)isStand musicName:(NSString *)musicName{
    // 1.设置动画图片
    self.imageView.animationImages = images;
    
    // 2.设置动画次数
    self.imageView.animationRepeatCount = count;
    
    // 3.设置播放时长
    self.imageView.animationDuration = duration;
    
    // 4.播放
    [self.imageView startAnimating];
    
    // 5.站立
    if (!isStand) {
       // 6.播放
        NSURL *url = [[NSBundle mainBundle] URLForResource:musicName withExtension:nil];
        AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithURL:url];
        [self.player replaceCurrentItemWithPlayerItem:playerItem];
        [self.player play];
        
        // 7.调节速率
        self.player.rate = 2.0;
       // 延迟执行方法
     [self performSelector:@selector(stand) withObject:nil afterDelay:self.imageView.animationDuration];
    }
}

批量加载图片

/**
 *  加载所有的图片
 *
 *  @param imagePrefix 名称前缀
 *  @param count       图片的总个数
 */
- (NSArray *)loadAllImagesWithimagePrefix:(NSString *)imagePrefix count:(int)count{
    NSMutableArray<UIImage *> *images = [NSMutableArray array];
    for (int i=0; i<count; i++) {
        // 获取所有图片的名称
        NSString *imageName = [NSString stringWithFormat:@"%@_%d",imagePrefix, i+1];
        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
        NSString *imagePath = [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"];
        UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
        // 装入数组
        [images addObject:image];
    }
    return images;
}
上一篇下一篇

猜你喜欢

热点阅读