2016-09-28 32 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爲了移動它。有誰知道我需要改變什麼?

回答

2

你可以給你的ImageView這樣的標籤:

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:

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

OR

您可以過濾通過細胞的子視圖並找到第一個可以投射到UIImageView的子視圖。雖然這不是很健壯,但可以考慮爲這個單元創建一個Class和XIB。

cell.subviews.flatMap { $0 as? UIImageView }.first?.transform = moveImg