2017-08-12 36 views
6

का उपयोग करके दबाए जाने पर सेल को एनिमेट करें मेरी समस्या वास्तव में सरल है। मैं एक संग्रह दृश्य के भीतर एक सेल एनिमेट करना चाहता हूँ। वास्तव में, मैं सेल के पीछे एक भूरे रंग की पृष्ठभूमि दिखाना चाहता हूं और अंदर छवि को स्केल करना चाहता हूं।स्विफ्ट 3

यह होगा (लगभग) Pinterest से ही प्रभाव:

enter image description here

मैं बटन पर है कि एनीमेशन कोड करने के लिए इस्तेमाल किया है, लेकिन मैं कभी नहीं किया था कि एक सेल पर। उदाहरण के लिए किसी सेल को टच अपसाइड या टचडाउन एक्शन से कैसे लिंक कर सकते हैं?

+1

मैं कार्रवाई जब मैं नीचे स्पर्श lauch, और जब टच अप जारी – KevinB

उत्तर

17

आप एनीमेशन शुरू करने के लिए जब आप सेल पर स्पर्श चाहते हैं, आप didHighlightItemAt लागू कर सकते हैं। आप शायद didUnhighlightItemAt में यह उल्टा करने के लिए करना चाहते हैं:

override func collectionView(_ collectionView: UICollectionView, didHighlightItemAt indexPath: IndexPath) { 
    UIView.animate(withDuration: 0.5) { 
     if let cell = collectionView.cellForItem(at: indexPath) as? CustomCell {    
      cell.imageView.transform = .init(scaleX: 0.95, y: 0.95) 
      cell.contentView.backgroundColor = UIColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1) 
     } 
    } 
} 

override func collectionView(_ collectionView: UICollectionView, didUnhighlightItemAt indexPath: IndexPath) { 
    UIView.animate(withDuration: 0.5) { 
     if let cell = collectionView.cellForItem(at: indexPath) as? CustomCell { 
      cell.imageView.transform = .identity 
      cell.contentView.backgroundColor = .clear 
     } 
    } 
} 

कि पैदावार:

demo

+0

Wonderfull अंदर चाहते हैं! वही है जो मैं चाहता था !!! आपका बहुत बहुत धन्यवाद ! – KevinB

0

आपके पास कई विकल्प हैं।

  • आप संग्रह को देखने के प्रतिनिधि विधि collecdtionView(:didSelectItemAtIndexPath:) को लागू करने और वहाँ अपने कोड डाल सकते हैं।

  • आप अपने विचार में एक टैप जेस्चर पहचानकर्ता संलग्न कर सकते हैं कि आप नल का जवाब देना चाहते हैं।

  • आप एक कस्टम बटन बना सकते हैं और इसमें एक छवि स्थापित कर सकते हैं और फिर सामान्य रूप से बटन की आईबीएक्शन विधि का उपयोग कर सकते हैं।

0

इस प्रयास करें:

अपने कस्टम UICollectionViewCell में, बदल imageViewtransform जब सेल चुना जाता है, यानी

class CollectionViewCell: UICollectionViewCell 
{ 
    @IBOutlet weak var imageView: UIImageView! 

    override var isSelected: Bool{ 
     didSet{ 
      UIView.animate(withDuration: 2.0) { 
       self.imageView.transform = self.isSelected ? CGAffineTransform(scaleX: 0.9, y: 0.9) : CGAffineTransform.identity 
      } 
     } 
    } 
}