2016-08-26 8 views
6

में ज़ूम कैसे करें CustomCollectionViewLayout के साथ कोड काम कर रहा है, और अंदर a lot of small cells है लेकिन उपयोगकर्ता zoom के बिना उन्हें नहीं देख सकता है। इसके अलावा सभी कोशिकाओं का चयन करने योग्य।UICollectionView

मैं ज़ूम सुविधा के अंदर अपना संग्रह दृश्य जोड़ना चाहता हूं!

नीचे दिए गए मेरे स्पष्ट कोड।

class CustomCollectionViewController: UICollectionViewController { 

    var items = [Item]() 


    override func viewDidLoad() { 
     super.viewDidLoad() 


     customCollectionViewLayout.delegate = self 

     getDataFromServer() 

} 

func getDataFromServer() { 

     HttpManager.getRequest(url, parameter: .None) { [weak self] (responseData, errorMessage) ->() in 

      guard let strongSelf = self else { return } 

      guard let responseData = responseData else { 
       print("Get request error \(errorMessage)") 
       return 
      } 

      guard let customCollectionViewLayout = strongSelf.collectionView?.collectionViewLayout as? CustomCollectionViewLayout else { return } 

      strongSelf.items = responseData 
      customCollectionViewLayout.dataSourceDidUpdate = true 

      NSOperationQueue.mainQueue().addOperationWithBlock({() -> Void in 
       strongSelf.collectionView!.reloadData() 
      }) 
     } 
    } 
} 

extension CustomCollectionViewController { 

    override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { 
     return items.count 
    } 

    override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return items[section].services.count + 1 
    } 

    override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! CustomCollectionViewCell 


      cell.label.text = items[indexPath.section].base 


     return cell 

} 

    override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath cellForItemAtIndexPath: NSIndexPath) { 

    print(items[cellForItemAtIndexPath.section].base) 


} 

} 

इसके अलावा तहत नीचे आप वहाँ देख सकते हैं मेरी UICollectionView लेआउट गुणों मैं maxZoom 4 चयनित लेकिन doesnt किसी भी कार्रवाई की है!

enter image description here

धन्यवाद!

+0

यह प्रश्न सहायक हो सकता है: [संग्रहदृश्य ज़ूम करने योग्य बनाएं] (http://stackoverflow.com/questions/13485617/make-uicollectionview-zoomable) – jojoT

+0

@jojoT ty लेकिन वह नमूना obj-c और प्रत्येक आइटम चुटकी ज़ूम कर रहा है I तेजी से और क्षेत्र ज़ूम चाहते हैं प्रत्येक आइटम सरल ज़ूम – SwiftDeveloper

+0

उपयोगकर्ता संग्रह दृश्य को छूता है, तो सेल ज़ूम हो जाता है? क्या आपका मतलब है, स्पर्श के बाद, पूरा संग्रह दृश्य धुंधला हो जाता है और स्पर्श कक्ष केवल देखने योग्य चौड़ाई और ऊंचाई पर स्क्रीन का केंद्र दिखाई देता है? –

उत्तर

1

आप एक संग्रह ज़ूम नहीं करते हैं जैसे आप एक साधारण स्क्रॉल व्यू ज़ूम करेंगे। इसके बजाय आपको एक चुटकी इशारा (या कुछ अन्य ज़ूम तंत्र) जोड़ना चाहिए और लेआउट को बदलने के लिए इसका उपयोग करना चाहिए ताकि आपका ग्रिड संग्रह के दृश्य भाग में वस्तुओं की एक अलग संख्या प्रदर्शित कर सके। यह मूल रूप से कॉलम की संख्या बदल रहा है और इस प्रकार आइटम का आकार (सेल आकार) बदल रहा है। जब आप लेआउट को अपडेट करते हैं तो संग्रह विभिन्न आकारों के बीच एनिमेट कर सकता है, हालांकि यह बेहद असंभव है कि आप एक चिकनी ज़ूम चाहते हैं, तो आप इसे एक कॉल में एन कॉलम से एन -1 कॉलम तक सीधे जाना चाहते हैं।

+0

धन्यवाद लेकिन मुझे पता है। जब मैं अंदर क्लिक करता हूं तो ज़ूम ज़ूम करने के दौरान मैं अपने यूआईसीओलेक्शन व्यू को सरल ज़ूम के अंदर एकीकृत करना चाहता हूं। और मुझे उन कोडों को विचारों की आवश्यकता नहीं है :) – SwiftDeveloper

1

मुझे लगता है कि तुम क्या हकदार उन्नत संग्रह दृश्य और बिल्डिंग कस्टम लेआउट (डेमो 20:20 पर शुरू होता है) https://www.youtube.com/watch?v=8vB2TMS2uhE

आप मूल रूप से आप के लिए pinchGesture जोड़ने के लिए WWDC1012 वीडियो में किया जाता है की तरह दिखता है जो चाह रहे हैं UICollectionView, फिर UICollectionViewLayout (जो UICollectionViewFlowLayout का उप-वर्ग है) में चुटकी गुण (स्केल, सेंटर) पास करें, तो आपका लेआउट वांछित सेल पर ज़ूम करने के लिए आवश्यक परिवर्तनों को निष्पादित करेगा।

+0

मैंने पहले देखा लेकिन मेरे प्रश्न को ठीक नहीं किया – SwiftDeveloper