У меня есть несколько изображений, и я открываю их в CollectionView, как альбом, пользователь может прокручивать влево и вправо и может зажимать зум. Я использую scrollview внутри ячейки и изображение внутри scrollviewНевозможно ограничить область панорамирования Scrollview внутри CollectionViewCell
Моя проблема в том, что я зажимаю масштабирование масштабирования изображения, но после этого, когда я перемещаюсь по изображению, он слишком сильно увеличивается и уменьшается, я хочу ограничить навигацию на картинке, но я не мог этого сделать, все пробовал, много искал, но не мог этого сделать, поэтому я хотел спросить вас.
Вы можете увидеть изображение ниже и понять, что я имею в виду лучше.
http://s8.postimg.org/oypni96id/image.png
Вот мой код
import UIKit
class SlideViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UIScrollViewDelegate {
@IBOutlet weak var collectionView: UICollectionView!
var images = ["image1.jpg" , "image2.jpg" , "image3.jpg" , "image1.jpg" , "image2.jpg" , "image3.jpg" , "image1.jpg" , "image2.jpg" , "image3.jpg" , "image1.jpg"]
var flowLayout:UICollectionViewFlowLayout = UICollectionViewFlowLayout()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell:UICollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! UICollectionViewCell
var scrollView:UIScrollView = cell.viewWithTag(1) as! UIScrollView
var image:UIImageView = scrollView.viewWithTag(2) as! UIImageView
self.flowLayout.minimumLineSpacing = 0.0
self.flowLayout.scrollDirection = UICollectionViewScrollDirection.Horizontal
self.collectionView.setCollectionViewLayout(self.flowLayout, animated: true)
image.image = UIImage(named: images[indexPath.row])
return cell
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 10
}
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let frame = view.frame
return CGSizeMake(frame.width, frame.height)
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
var image:UIImageView = scrollView.viewWithTag(2) as! UIImageView
return image
}
func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {
var scrollView:UIScrollView = cell.contentView.viewWithTag(1) as! UIScrollView
scrollView.zoomScale = 1.0
}
}