मेरे पास मेरे खेल के मैदान पर UICollectionView बनाने के लिए कुछ कोड है। कोड काम करता है और पूर्वावलोकन ठीक है। अब मैं इसे एक्सकोड प्रोजेक्ट में पुन: उपयोग करने की कोशिश कर रहा हूं, मुझे कोई त्रुटि नहीं मिल रही है लेकिन सिम्युलेटर पर निर्माण सिर्फ सादा सफेद है .. देखने के लिए कुछ भी नहीं

क्या कोई इसका कारण बता सकता है? :)

import UIKit
//import PlaygroundSupport

class MyViewController : UIViewController {
    var myCollectionView:UICollectionView?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let view = UIView()
        view.backgroundColor = .white
        
        let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
        layout.sectionInset = UIEdgeInsets(top: 20, left: 10, bottom: 10, right: 10)
        layout.itemSize = CGSize(width: 60, height: 60)
        
        myCollectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)

        myCollectionView?.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "MyCell")
        myCollectionView?.backgroundColor = UIColor.white
        
        myCollectionView?.dataSource = self
        myCollectionView?.delegate = self
 
        view.addSubview(myCollectionView ?? UICollectionView())
        
        self.view = view
    }
}

extension MyViewController: UICollectionViewDataSource {
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 9 // How many cells to display
    }
    
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let myCell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: indexPath)
        myCell.backgroundColor = UIColor.blue
        return myCell
    }
}

extension MyViewController: UICollectionViewDelegate {
 
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
       print("User tapped on item \(indexPath.row)")
    }
}

// Present the view controller in the Live View window
//PlaygroundPage.current.liveView = MyViewController()
0
DeDe Schurk 16 सितंबर 2020, 10:51

1 उत्तर

सबसे बढ़िया उत्तर

क्या आप स्टोरीबोर्ड पर गए थे, दस्तावेज़ की रूपरेखा में दृश्य नियंत्रक का चयन किया था, और पहचान निरीक्षक में कक्षा का नाम UIViewController से MyViewController में बदल दिया था? यदि आप वह परिवर्तन नहीं करते हैं, तो Xcode मानता है कि आप डिफ़ॉल्ट UIViewController का उपयोग करना चाहते हैं, जो खाली है।

1
DPrice 16 सितंबर 2020, 11:07