简单使用
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
}
做出来的效果(截屏的时间没把握好。不过大概就是这种效果了):
实用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
在测试时发现加载不了,后来觉得应该是https的原因,就在info.list添加两个key,解决了参考: iOS9的问题
UIImageView的一个属性contentMode
contentMode是一个枚举,其中有3个值经常搅混,一直想整理,刚好有次刷微博看到了这张图
1.ScaleToFill 是填满的意思(会导致图片变形)(默认)
2.ScaleAspectFill 是按比例填满(图片不变形,但通常会导致部分图片显示不出来
3.ScaleAspectFit 是按比例全部显示(会导致部分空白)