一. 内容说明
跟我之前这篇类似,只不过那篇是OC版本,这篇是Swift版本 OC版本链接地址
目的:通过kingfisher请求5张图片,展示出来。然后利用图片放大缩小管理类展示图片,多张图片可以滑动浏览
效果图如下,想看动态的效果图,请看上面链接中的OC版本效果图,跟这篇是一样的。
本demo,只加载本地图片的demo下载链接 ,需要加载网络图片的,需要下载Kingfisher


二.源码展示
0. 图片测试demo源码
import Foundation
import UIKit
class LJPhotoGroupViewController : TFBaseViewController{
lazy var ljArray : [LJPhotoInfo] = [LJPhotoInfo]()
let ljUrlArray = ["http://www.easck.com/2007-12-12/20071212235955316_2.jpg",
"http://www.easck.com/down/png/1706/10avatars-material-pngs/avatars-material-man-4.png",
"http://www.easck.com/2017/0703/20170703042329843.jpg",
"http://www.easck.com/2015/0121/20150121033625957.jpg",
"http://www.easck.com/2017/0702/20170702124619643.jpg"]
override func viewDidLoad() {
super.viewDidLoad()
self.setTopNavBarTitle("图片浏览测试Demo")
self.setTopNavBackButton()
self.setUI()
}
}
extension LJPhotoGroupViewController{
func setUI(){
for index in 0...4{
//1.加载本地图片
//let image = UIImage.init(named: "(index + 1).jpg")
let showImageView = UIImageView.init()
//showImageView.image = image
showImageView.tag = index
showImageView.frame = CGRect(x: Int((AppWidth - 200)/2.0), y: 80 + Int(90 * index), width: 200, height: 80)
showImageView.isUserInteractionEnabled = true
view.addSubview(showImageView)
//2.加载本地图片
let url = URL(string:ljUrlArray[index])
showImageView.kf.setImage(with: url)
let gestrue = UITapGestureRecognizer.init(target: self, action: #selector(LJPhotoGroupViewController.showClicked(_:)))
showImageView.addGestureRecognizer(gestrue)
//需要浏览的图片添加到数组
let info = LJPhotoInfo.init()
info.largeImageURLStr = ljUrlArray[index]
info.thumbImageview = showImageView
info.currentSelectIndex = index
self.ljArray.append(info)
}
}
}
extension LJPhotoGroupViewController{
func showClicked(_ sender : UITapGestureRecognizer){
if self.ljArray.count > 0 {
let index = sender.view?.tag
let photoGroupView = LJPhotoGroupView.init(frame: CGRect(x: 0, y: 0, width: AppWidth, height: AppHeight))
photoGroupView.setData(self.ljArray, selectedIndex: index!)
photoGroupView.showPhotoView()
CHDebugLog("-------(String(describing: index))")
}
}
}










