1.声明控件
//定义控件x:0 y:100 width:64 height:64
let imageView = UIImageView(frame: CGRect(x: 0, y: 100, width: 64, height: 64))
self.view.addSubview(imageView)
//设置显示的图片
let image = UIImage(named: "alarm")
imageView.image = image
或者
let imageView = UIImageView(image: UIImage(named: "alarm"))
imageView.frame = CGRect(x: 0, y: 100, width: 64, height: 64)
self.view.addSubview(imageView)
2.从文件目录中获取图片
可以通过
Bundle.main.path(forResource: String?, ofType: String?)
来获取文件目录中的资源文件,例如:
let path = Bundle.main.path(forResource: "doge", ofType: "jpg")
let newImage = UIImage(contentsOfFile: path!)
imageView.image = newImage
3.设置图片缩放模式
通过ContentMode来设置缩放模式
- scaleAspectFit 在保持长宽比的前提下,缩放图片,使得图片在容器内完整显示出来。
- scaleAspectFill 在保持长宽比的前提下,缩放图片,使图片充满容器。
-
scaleToFill 缩放图片,使图片充满容器。图片未必保持长宽比例协调,有可能会拉伸至变形。
网上找的一张图片可以用来解释各种模式的效果
4.加载网络图片
//定义URL对象
let url = URL(string: "http://pic150.nipic.com/file/20171224/8669400_090903351033_2.jpg")
//从网络获取数据流
let data = try! Data(contentsOf: url!)
//通过数据流初始化图片
let newImage = UIImage(data: data)
imageView.image = newImage
运行上面的代码可能会报以下的错误:
因为没有网络访问权限导致图片链接加载失败,在info.plist文件中添加网络访问权限,右键info.plist-->Open As-->Source Code
添加如下代码在适当位置
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
运行,效果如下:
5.使用imageView实现图片动画
import UIKit
class ViewController: UIViewController {
var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
//定义控件x:0 y:100 width:100 height:134
imageView = UIImageView(frame: CGRect(x: 0, y: 100, width: 100, height: 134))
self.view.addSubview(imageView)
//设置图片数组
imageView.animationImages = [UIImage(named:"user1")!,UIImage(named:"user3")!]
//设置每隔2秒变化一次
imageView.animationDuration=2
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
imageView.startAnimating()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillAppear(animated)
imageView.stopAnimating()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
运行效果如下:
关于UIImageView基本的使用就这些,注意在加载网络图片的时候,一定要添加网络连接的相关配置,更多场景的使用请根据具体情况探索和尝试。