im с использованием CollectionView
и жест Pinch, подключенный к CVCell. У меня есть изображение в ячейке и жест Пинч. Увеличение и уменьшение изображения. Моя проблема - «Жесткий жест» работает только для четных строк, а не для нечетных строк. Я имею в виду, что для первой ячейки я не могу масштабировать изображение, я могу увеличить изображение во второй ячейке и наклоняться к третьей ячейке и может для 4-й ячейки, и она продолжается так. Я не мог найти логического объяснения. Так что, возможно, вы можете увидеть, чего я пропустил. Спасибо, совет. Мой код здесь:CollectionViewCell не работает должным образом с жестом Pinch
`
@IBAction func handlePinch(recognizer : UIPinchGestureRecognizer) {
if let view = recognizer.view {
view.transform = CGAffineTransformScale(view.transform,
recognizer.scale, recognizer.scale)
recognizer.scale = 1
}
}
@IBOutlet weak var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
var b = UIBarButtonItem(barButtonSystemItem: .Bookmarks, target: self, action: "barButton")
self.navigationItem.rightBarButtonItem = b
var ItemIndex = NSIndexPath(forItem: catchNumber, inSection: 0)
self.collectionView?.scrollToItemAtIndexPath(ItemIndex, atScrollPosition: UICollectionViewScrollPosition.CenteredHorizontally, animated: false)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func barButton(){
let alert = UIAlertController(title: "Select an option", message: " ", preferredStyle: UIAlertControllerStyle.ActionSheet)
let shareButton = UIAlertAction(title: "Share", style: UIAlertActionStyle.Default) { (alert) -> Void in
let content = FBSDKSharePhotoContent()
let photo : FBSDKSharePhoto = FBSDKSharePhoto()
photo.image = self.image
photo.userGenerated = true
content.photos = [photo]
FBSDKMessageDialog.showWithContent(content, delegate:nil)
}
let saveButton = UIAlertAction(title: "Save", style: UIAlertActionStyle.Default) { (alert) -> Void in
UIImageWriteToSavedPhotosAlbum(self.image, nil, nil, nil)
}
let deleteButton = UIAlertAction(title: "Delete", style: UIAlertActionStyle.Default) { (alert) -> Void in
var tmp = self.catchPictures[self.catchNumber].componentsSeparatedByString("_")
self.idDelete = tmp[1]
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "/\(self.idDelete)", parameters: nil , HTTPMethod: "DELETE")
graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
if (error == nil){
self.navigationController?.popViewControllerAnimated(true)
}else{
let alertController = UIAlertController(title: "Delete Error", message:
"An error occured while deleting photo", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default,handler: nil))
self.presentViewController(alertController, animated: true, completion: nil)
}
})
}
let cancelButton = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) { (alert) -> Void in
println("Cancel Pressed")
}
alert.addAction(shareButton)
alert.addAction(saveButton)
alert.addAction(deleteButton)
alert.addAction(cancelButton)
self.presentViewController(alert, animated: true, completion: nil)
}
func collectionView(collectionView: UICollectionView, numberOfSectionInCollectionView section: Int) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return catchPictures.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
var cell = collectionView.dequeueReusableCellWithReuseIdentifier("PhotoCell", forIndexPath: indexPath) as! UICollectionViewCell
let a:UIImageView = cell.contentView.viewWithTag(1) as! UIImageView
dispatch_async(dispatch_get_main_queue(),{
var urlString: NSString = self.catchPictures[indexPath.row] as NSString
var imgURL: NSURL = NSURL(string: urlString as String)!
var request: NSURLRequest = NSURLRequest(URL: imgURL)
var urlConnection: NSURLConnection = NSURLConnection(request: request, delegate: self)!
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: {(response: NSURLResponse!,data: NSData!,error: NSError!) -> Void in
if !(error != nil) {
var image = UIImage(data: data)
a.image = image
self.image = a.image
}})
self.flowLayout.minimumInteritemSpacing = 0.0
self.flowLayout.minimumLineSpacing = 0.0
self.flowLayout.itemSize = CGSizeMake(self.view.frame.width, 350)
self.flowLayout.scrollDirection = UICollectionViewScrollDirection.Horizontal
self.collectionView.setCollectionViewLayout(self.flowLayout, animated: true)
})
self.catchNumber = indexPath.row
return cell
}
} `
Не могли бы вы опубликовать код ячейки коллекции CVCell – Carpsen90
Нет, нет никаких специальных CVCell, это моя ошибка, что я написал CVCell в качестве краткого значения Colle ctionViewCell, который отображается в коде, в котором я не использовал какую-либо пользовательскую ячейку просмотра коллекции;) Извините за недоразумение – marmaralone
Где код для добавления распознавателя пинча в представление коллекции? – Carpsen90