UICollectionViewCell中带有Swift的UIScrollView
我是IOS新手。我尝试创建查看图像应用程序,显示全屏大小的图像可以缩放,当用户缩小小于全屏大小的图像时,图像返回全屏大小,我的想法是使用UICollectionView设置分页启用,滚动方向水平。所以我的流程布局是这样的UICollectionViewCell中带有Swift的UIScrollView,swift,uiscrollview,uicollectionviewcell,pinchzoom,sdwebimage,Swift,Uiscrollview,Uicollectionviewcell,Pinchzoom,Sdwebimage,我是IOS新手。我尝试创建查看图像应用程序,显示全屏大小的图像可以缩放,当用户缩小小于全屏大小的图像时,图像返回全屏大小,我的想法是使用UICollectionView设置分页启用,滚动方向水平。所以我的流程布局是这样的 var screenSize: CGRect! override func viewDidLoad() { super.viewDidLoad() screenSize = UIScreen.mainScreen().bounds let lay
var screenSize: CGRect!
override func viewDidLoad() {
super.viewDidLoad()
screenSize = UIScreen.mainScreen().bounds
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
layout.itemSize = CGSize(width: screenSize.width, height: screenSize.height)
layout.minimumInteritemSpacing = 0
layout.minimumLineSpacing = 0
layout.scrollDirection = UICollectionViewScrollDirection.Horizontal
self.collectionView!.collectionViewLayout = layout
self.view.addSubview(collectionView!)
import UIKit
class MyCollectionCell: UICollectionViewCell, UIScrollViewDelegate{
@IBOutlet weak var scrollCell: UIScrollView!
@IBOutlet weak var imgTest: UIImageView!
}
var imageName:[String] = ["audi.png", "benz.png", "flok.png", "audi.png", "benz.png", "flok.png", "audi.png", "benz.png", "flok.png"]
我的CollectionViewCell标识符名称“Cell”我在其中拖动ScrollView并在该ScrollView中拖动图像
我在CollectionViewCell类中输出这两个项,如下所示
var screenSize: CGRect!
override func viewDidLoad() {
super.viewDidLoad()
screenSize = UIScreen.mainScreen().bounds
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
layout.itemSize = CGSize(width: screenSize.width, height: screenSize.height)
layout.minimumInteritemSpacing = 0
layout.minimumLineSpacing = 0
layout.scrollDirection = UICollectionViewScrollDirection.Horizontal
self.collectionView!.collectionViewLayout = layout
self.view.addSubview(collectionView!)
import UIKit
class MyCollectionCell: UICollectionViewCell, UIScrollViewDelegate{
@IBOutlet weak var scrollCell: UIScrollView!
@IBOutlet weak var imgTest: UIImageView!
}
var imageName:[String] = ["audi.png", "benz.png", "flok.png", "audi.png", "benz.png", "flok.png", "audi.png", "benz.png", "flok.png"]
CollectionViewController的下一步是设置我的虚拟图像,如下所示
var screenSize: CGRect!
override func viewDidLoad() {
super.viewDidLoad()
screenSize = UIScreen.mainScreen().bounds
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
layout.itemSize = CGSize(width: screenSize.width, height: screenSize.height)
layout.minimumInteritemSpacing = 0
layout.minimumLineSpacing = 0
layout.scrollDirection = UICollectionViewScrollDirection.Horizontal
self.collectionView!.collectionViewLayout = layout
self.view.addSubview(collectionView!)
import UIKit
class MyCollectionCell: UICollectionViewCell, UIScrollViewDelegate{
@IBOutlet weak var scrollCell: UIScrollView!
@IBOutlet weak var imgTest: UIImageView!
}
var imageName:[String] = ["audi.png", "benz.png", "flok.png", "audi.png", "benz.png", "flok.png", "audi.png", "benz.png", "flok.png"]
然后转到cellForItemAtIndexPath
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! MyCollectionCell
cell.layer.borderWidth = 0
cell.frame.size.width = screenSize.width
cell.frame.size.height = screenSize.height
// set cell size become fullscreen
cell.imgTest.image = UIImage(named: imageName[indexPath.row])
cell.imgTest.frame = CGRect(origin: CGPoint(x: 0, y: 0), size:cell.imgTest.image!.size)
//call my dummy image to cell
cell.scrollCell.addSubview(cell.imgTest)
cell.scrollCell.contentSize = cell.imgTest.image!.size
let scaleHeight = cell.scrollCell.frame.size.height / cell.scrollCell.contentSize.height
let scaleWidth = cell.scrollCell.frame.size.width / cell.scrollCell.contentSize.width
let minScale = min(scaleWidth, scaleHeight)
cell.scrollCell.minimumZoomScale = minScale
cell.scrollCell.maximumZoomScale = 1.0
cell.scrollCell.zoomScale = minScale
var doubleTapRecognizer = UITapGestureRecognizer(target: self, action: "scrollviewDoubleTapped")
doubleTapRecognizer.numberOfTapsRequired = 2
doubleTapRecognizer.numberOfTapsRequired = 1
cell.scrollCell.addGestureRecognizer(doubleTapRecognizer)
我运行这个项目,问题是
使用scrollview代替集合视图,更简单、更灵活。查看此链接非常好的教程。。您可以合并滚动页面和滚动缩放 你找到解决办法了吗?我也被困在那里了…:(检查单元格缩放)