美文网首页程序员iOS开发
iOS-视图之UIImageView

iOS-视图之UIImageView

作者: 茶哥儿 | 来源:发表于2016-03-14 22:27 被阅读374次

    今天我们来一起学习UIImageView的用法,由名字可以知道,今天的这个视图是用来显示图片的。

    图片是信息传播的的一种重要方式,它相对于文字来讲更加的直观、生动、形象的展示信息,iOS的图片类提供了很多的功能来满足开发的需要。

    首先,还是一样的视图类创建:

    //父类是UIView,以后这句话就不加注释了,茶哥非常喜欢用这种方式来创建视图类(storyboard的使用除外)
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
    [self.view addSubview:imageView];
    
    UIImageView.png

    在这里使用三种方式来加载一张图片:

    first

    UIImage *im = [UIImage imageNamed:@"tea.png"];
    

    second

    //这个 mainbundle 就是 当前的可执行app 的在根目录下的绝对路径
    NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"tea" ofType:@"png"];
    UIImage *im = [UIImage imageWithContentsOfFile:imagePath];
    

    third

    /*这里的data是用本地的图片路径找到图片后转换来的,NSData是数据类,我们网络请求下来的图片
    数据也可以用NSData接收*/
    NSData *data = [NSData dataWithContentsOfFile:imagePath];
    UIImage *im = [UIImage imageWithData:data];
    

    第一种和第二种其实是使用的相同的原理加载图片,即将图片CaChe到内存中,而第三种方式图片会以数据的形式加载到系统中,而这个数据可以是本地转换的,也可以是从网络图片中获取的,所以我们的UIImageView不仅可以显示本地图片还可以显示网络图片。

    此外还有另外一个比较重要的属性contentMode,这个属性用来设置图片的显示方式。

     //参数为UIViewContentMode枚举类型
    [imageView setContentMode:UIViewContentModeScaleToFill];
    

    UIViewContentMode具体参数如下:

    typedef NS_ENUM(NSInteger, UIViewContentMode) {
    UIViewContentModeScaleToFill,          //拉伸自适应填满
    UIViewContentModeScaleAspectFit,       //自适应比例大小
    UIViewContentModeScaleAspectFill,      //原始尺寸
    UIViewContentModeRedraw,               //尺寸改变时重新绘制
    UIViewContentModeCenter,               //居中
    UIViewContentModeTop,                  //置顶
    UIViewContentModeBottom,               //置底
    UIViewContentModeLeft,                 //居左
    UIViewContentModeRight,                //居右
    UIViewContentModeTopLeft,              //居左上
    UIViewContentModeTopRight,             //居右上
    UIViewContentModeBottomLeft,           //居左下
    UIViewContentModeBottomRight,          //居右下
    

    };

    我们还可以添加一组图片,让我们的图片动起来,类似于gif图

    //首先将所有的组图放入一个数组中
    UIImage *im1 = [UIImage imageNamed:@"tea1.png"];
    UIImage *im2 = [UIImage imageNamed:@"tea2.png"];
    UIImage *im3 = [UIImage imageNamed:@"tea3.png"];
    NSArray *imArr = @[im1,im2,im3];
    [imageView setAnimationImages:imArr];
    
    //设定动画时间
    [imageView setAnimationDuration:2];
    
    //设置播放次数,0表示无限播放
    [imageView setAnimationRepeatCount:0];
    
    //开始播放
    [imageView startAnimating];
    
    //判断是否正在播放动画
    if (imageView.isAnimating) {
        NSLog(@"动画正在播放");
    }
    
    //停止播放
    [imageView stopAnimating];
    

    以上便是UIImageView的使用,不难吧,想了解更多iOS相关知识,请继续关注茶哥儿!

    创造即永恒,喝茶去……

    相关文章

      网友评论

        本文标题:iOS-视图之UIImageView

        本文链接:https://www.haomeiwen.com/subject/riwflttx.html