2、UIImageView

2016-01-06  本文已影响60人  广东煲仔饭049

简单使用

func configUIImageView() -> UIImageView {
        //初始化同时设置frame
        let imageView = UIImageView(frame: CGRectMake(gap32, gap64+44, 98, 98))
        //图像
        imageView.image = UIImage(named: "xxImage5")
        //图像填充方式(要确保masksToBounds是true)
        imageView.contentMode = .ScaleAspectFill
        //设置圆角(要用layer层、度数通常是其宽度一半)
        imageView.layer.masksToBounds = true
        imageView.layer.cornerRadius = CGRectGetWidth(imageView.frame)/2
        
        //自动更换图片的内容
        let image1 = UIImage(named: "xxImage1")
        let image2 = UIImage(named: "xxImage2")
        let image3 = UIImage(named: "xxImage3")
        let imagesArray: [UIImage] = [image1!, image2!, image3!]
        imageView.animationImages = imagesArray
        // 设定所有的图片在多少秒内播放完毕
        imageView.animationDuration = Double(imagesArray.count)
        // 重复次数,0表示无数遍
        imageView.animationRepeatCount = 2;
        // 开始播放
        imageView.startAnimating()
        return imageView
    }

做出来的效果(截屏的时间没把握好。不过大概就是这种效果了):


image1.gif

实用SDWebImage加载网络图片

引入了SDWebImage的库后,只需使用 sd_的方法即可

//使用SDWebImage设置
    func configImageViewBySD() -> UIImageView {
        let sdImageView = UIImageView(frame: CGRectMake(gap32, gap64+44+2*gap64, 98, 98))
        let url = NSURL(string: "http://img.taopic.com/uploads/allimg/120403/57997-12040319145195.jpg")
        sdImageView.sd_setImageWithURL(url, placeholderImage: UIImage(named: "xxImage4"))
        return sdImageView
    }

可以看到下面的图片是稍后一点才变成另一张的,因为使用的是异步请求的原因,在请求完成前是先显示placeholderImage的UIImage

UIbuttonClick_2.gif

在测试时发现加载不了,后来觉得应该是https的原因,就在info.list添加两个key,解决了参考: iOS9的问题

UIImageView的一个属性contentMode

contentMode是一个枚举,其中有3个值经常搅混,一直想整理,刚好有次刷微博看到了这张图


contentMode1.JPG

1.ScaleToFill 是填满的意思(会导致图片变形)(默认)
2.ScaleAspectFill 是按比例填满(图片不变形,但通常会导致部分图片显示不出来
3.ScaleAspectFit 是按比例全部显示(会导致部分空白)

上一篇 下一篇

猜你喜欢

热点阅读