在单独的 UICollection 类中使用未解析的标识符“UICollection”

Posted

技术标签:

【中文标题】在单独的 UICollection 类中使用未解析的标识符“UICollection”【英文标题】:Use of unresolved identifier 'UICollection' in separate UICollection Class 【发布时间】:2020-06-11 09:36:17 【问题描述】:

我有这门课,我将在顶部菜单视图上工作。

代码如下:

import UIKit

class TopHomeMenuBar: UIView 

let collectionView: UICollectionView = 

    let layout = UICollectionViewFlowLayout()
    let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
    return cv
()

override init(frame: CGRect) 
    super.init(frame: frame)

    addSubview(collectionView)

    backgroundColor = UIColor.systemGreen


required init?(coder: NSCoder) 
    fatalError("init(coder:) has not been implemented")


但是,我不断收到错误消息:

使用未解析的标识符“UICollection”

错误是在这行代码中高亮UICollectionView:

    let collectionView: UICollectionView = 

【问题讨论】:

【参考方案1】:

确实有效

现在在 XCODE 中创建了一个简单的 SinlgerView 项目 我放的控制器(仅用于测试..通常视图有自己的文件..)

//
//  ViewController.swift
//
//  Created by ing.conti on 11/06/2020.
//  Copyright © 2020 ing.conti. All rights reserved.
//

import UIKit

class ViewController: UIViewController 

    override func viewDidLoad() 
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    





class TopHomeMenuBar: UIView 

    let collectionView: UICollectionView = 

        let layout = UICollectionViewFlowLayout()
        let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
        return cv
    ()

    override init(frame: CGRect) 
        super.init(frame: frame)

        addSubview(collectionView)

        backgroundColor = UIColor.systemGreen
    

    required init?(coder: NSCoder) 
        fatalError("init(coder:) has not been implemented")
    

【讨论】:

【参考方案2】:

试试这个方法。

private var collectionLayout = UICollectionViewFlowLayout()

lazy var collectionView: UICollectionView = 
    UICollectionView(frame: .zero, collectionViewLayout: collectionLayout)
()

然后在layoutSubviews 中根据需要设置流布局。

override func layoutSubviews() 
    super.layoutSubviews()

    collectionLayout.sectionInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
    collectionLayout.minimumLineSpacing = 0
    collectionLayout.itemSize = CGSize(width: (frame.width - 20) / 5, height: frame.height - 24)
    collectionLayout.scrollDirection = .horizontal

【讨论】:

以上是关于在单独的 UICollection 类中使用未解析的标识符“UICollection”的主要内容,如果未能解决你的问题,请参考以下文章

LNK2019“未解析的外部符号”错误(C++ OpenGL)

另一个类中使用的非静态类<未解析的重载函数类型>

“SQLAlchemy”类中未解析的属性“Column”

Pycharm 检查未标记从存根对象继承的类中未解析的引用

使用未解析的标识符“winnerLabel”

方法没有覆盖超类中的任何函数(覆盖 func collectionView)[重复]