2016-09-28 14 views
0

私はこのプロジェクトに基づいて私のアプリにカルーセルを構築しようとしています、https://github.com/nicklockwood/iCarousel、私はそれを迅速に書いています。あなたがスクロールして正しくここにインデックスにある項目をタップすることができますどこ私はそれは、正しく動作していますiCarouselの再利用識別子

func carousel(_ carousel: iCarousel, viewForItemAt index: Int, reusing view: UIView?) -> UIView { 
     let tempView = UIView(frame: CGRect(x: 0, y: 130, width: 295, height: 300)) 
     let object = self.imageFilesArray.object(at: index) as! PFObject 

     let imageView = UIImageView() 
     imageView.frame = CGRect(x: 0, y: 0 , width: 295, height: 295) 
     imageView.layer.cornerRadius = 15 
     imageView.layer.masksToBounds = true 
     let imageFile = object.object(forKey: "Image") as! PFFile 
     imageFile.getDataInBackground{ 
      (data, error) -> Void in 
      if error == nil { 


      } 
      imageView.image = UIImage(data: data!) 
      tempView.addSubview(imageView) 
} 
     return tempView 
    } 



func carousel(_ carousel: iCarousel, didSelectItemAt index: Int) { 
let cell = carouselView.itemView(at: index) 
     let object = self.imageFilesArray[index] as! PFObject 

     if cell?.tag == 0 { 

      print("open cell") 
      let moveImg = CGAffineTransform(translationX: 0, y: -100) 
      UIView.animate(withDuration: 0.4, delay: 0.1, options: [], animations: { 
       //cell.imageView.transform = moveImg 

       }, completion: nil) 
      cell?.tag = 1 

     } else if cell?.tag == 1 { 

      let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 

      let nextViewController = storyBoard.instantiateViewController(withIdentifier: "EventDetailViewController") as! EventDetailViewController 

      self.present(nextViewController, animated:false, completion:nil) 

     } 

しかし、私は何をしようとしていますが、私はインデックスにある項目をタップするとされ、上のImageViewの遷移を画面。私の問題は、特定のセルimageViewにアクセスすることができないためです。誰か私は何を変える必要があるか知っていますか?あなたのImageViewのにこのようなタグ与える可能性

答えて

2

:あなたはフィルタリングでき

if let imageView = cell.viewWithTag(2) as? UIImageView { 
    imageView.transform = moveImg 
} 

OR

let imageView = UIImageView() 
imageView.frame = CGRect(x: 0, y: 0 , width: 295, height: 295) 
imageView.layer.cornerRadius = 15 
imageView.layer.masksToBounds = true 
imageView.tag = 2 

を次に、あなたは、このような細胞からのImageViewのを取得することができますセルのサブビューを通して、UIImageViewにキャストできる最初のサブビューを見つけます。これはあまり堅牢ではありませんが、このセルのクラスとXIBを作成することを検討してください。

cell.subviews.flatMap { $0 as? UIImageView }.first?.transform = moveImg 
関連する問題