Swift4.0学习笔记(七)——图像控件(UIImageView)

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)
Swift4.0学习笔记(七)——图像控件(UIImageView)_第1张图片
基础声明
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
Swift4.0学习笔记(七)——图像控件(UIImageView)_第2张图片
从文件夹中获取图片
3.设置图片缩放模式

通过ContentMode来设置缩放模式

  • scaleAspectFit 在保持长宽比的前提下,缩放图片,使得图片在容器内完整显示出来。
  • scaleAspectFill 在保持长宽比的前提下,缩放图片,使图片充满容器。
  • scaleToFill 缩放图片,使图片充满容器。图片未必保持长宽比例协调,有可能会拉伸至变形。
    网上找的一张图片可以用来解释各种模式的效果


    Swift4.0学习笔记(七)——图像控件(UIImageView)_第3张图片
    Mode效果
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

运行上面的代码可能会报以下的错误:


Swift4.0学习笔记(七)——图像控件(UIImageView)_第4张图片
异常

因为没有网络访问权限导致图片链接加载失败,在info.plist文件中添加网络访问权限,右键info.plist-->Open As-->Source Code


Swift4.0学习笔记(七)——图像控件(UIImageView)_第5张图片
Source模式

添加如下代码在适当位置
NSAppTransportSecurity

  NSAllowsArbitraryLoads
  

运行,效果如下:


Swift4.0学习笔记(七)——图像控件(UIImageView)_第6张图片
加载网络图片
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.
    }

}

运行效果如下:


Swift4.0学习笔记(七)——图像控件(UIImageView)_第7张图片
animation.gif

关于UIImageView基本的使用就这些,注意在加载网络图片的时候,一定要添加网络连接的相关配置,更多场景的使用请根据具体情况探索和尝试。

你可能感兴趣的:(Swift4.0学习笔记(七)——图像控件(UIImageView))