|
//
// ImageCell.swift
// PaiAi
//
// Created by zhengjianfei on 16/4/9.
// Copyright © 2016年 FFIB. All rights reserved.
//
import UIKit
import PaiaiDataKit
import PaiaiUIKit
final class ImageCell: UICollectionViewCell, UIScrollViewDelegate {
@IBOutlet var scrollView: UIScrollView!
var photoImage = UIImageView()
func setModel(url: String) {
photoImage.frame = CGRect.init(x: 0, y: 0, width: width, height: height)
photoImage.contentMode = .scaleAspectFit
scrollView.contentSize = size
scrollView.addSubview(photoImage)
// photoImage.image = UIImage.imageWithColor(UIColor.black)
if !url.isEmpty {
// photoImage.setImageWithNullableURL(url, placeholderImage: UIImage(named: "详情页占位图"))
} else {
photoImage.image = UIImage(named: url)
}
let tapGr = UITapGestureRecognizer(target: self, action: #selector(ImageCell.doubleTap(_:)))
tapGr.numberOfTapsRequired = 2
scrollView.addGestureRecognizer(tapGr)
// printLog(scrollView)
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return photoImage
}
//MARK zoom
@objc func doubleTap(_ gr: UITapGestureRecognizer) {
if scrollView.zoomScale > scrollView.minimumZoomScale {
scrollView.setZoomScale(scrollView.minimumZoomScale, animated: true)
} else {
//Zoom to rect
let tapPt = gr.location(in: scrollView)
// printLog(tapPt)
var zoomRect = CGRect.zero
zoomRect.size.width = frame.width / scrollView.maximumZoomScale
zoomRect.size.height = frame.height / scrollView.maximumZoomScale
zoomRect.origin.x = tapPt.x - zoomRect.width / 2
zoomRect.origin.y = tapPt.y - zoomRect.height / 2
if zoomRect.origin.x < 0 {
zoomRect.origin.x = 0
} else if zoomRect.maxX > photoImage.frame.maxX {
let delta = zoomRect.maxX - photoImage.frame.maxX
zoomRect.origin.x -= delta
}
if zoomRect.origin.y < 0 {
zoomRect.origin.y = 0
} else if zoomRect.maxY > photoImage.frame.maxY {
let delta = zoomRect.maxY - photoImage.frame.maxY
zoomRect.origin.y -= delta
}
scrollView.zoom(to: zoomRect, animated: true)
}
}
override func prepareForReuse() {
super.prepareForReuse()
scrollView.zoomScale = 1
}
}
|