Ios Swift-为UICollectionViewCell拾取图像和标签

Ios Swift-为UICollectionViewCell拾取图像和标签,ios,swift,uicollectionview,uiimageview,uicollectionviewcell,Ios,Swift,Uicollectionview,Uiimageview,Uicollectionviewcell,现在我有一个collectionView,我可以通过点击“addCell”来添加单元格 我的目标是,如果用户点击“addCell”,应该会出现一个视图,用户可以在其中键入单元格标题并选择如下图像: 你知道我是如何意识到这一点的吗? class ContentCell: UICollectionViewCell { let testImage: UIImageView = { let v = UIImageView() v.translatesAutoresizingMaskI

现在我有一个collectionView,我可以通过点击“addCell”来添加单元格

我的目标是,如果用户点击“addCell”,应该会出现一个视图,用户可以在其中键入单元格标题并选择如下图像:

你知道我是如何意识到这一点的吗?

class ContentCell: UICollectionViewCell {
let testImage: UIImageView = {
    let v = UIImageView()
    v.translatesAutoresizingMaskIntoConstraints = false
    v.backgroundColor = .cyan
    return v
}()

let testLabel: UILabel = {
    let v = UILabel()
    v.translatesAutoresizingMaskIntoConstraints = false
    v.text = "Test Label"
    v.font = UIFont(name: "Avenir Next-Bold", size: 18)
    v.textColor = .darkGray
    v.textAlignment = .center
    return v
}()

override init(frame: CGRect) {
    super.init(frame: frame)
    commonInit()
}

required init?(coder: NSCoder) {
    super.init(coder: coder)
    commonInit()
}

func commonInit() -> Void {

    contentView.addSubview(testLabel)
    contentView.addSubview(testImage)

    NSLayoutConstraint.activate([

        testImage.topAnchor.constraint(equalTo: contentView.topAnchor),
        testImage.leadingAnchor.constraint(equalTo: contentView.leadingAnchor),
        testImage.trailingAnchor.constraint(equalTo: contentView.trailingAnchor),
        testImage.heightAnchor.constraint(equalToConstant:150),

        testLabel.topAnchor.constraint(equalTo: testImage.bottomAnchor,constant: 1),
        testLabel.bottomAnchor.constraint(equalTo: contentView.bottomAnchor),
        testLabel.leadingAnchor.constraint(equalTo: contentView.leadingAnchor),
        testLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor),
    ])
}

}

因此,在
didSelectItemAtIndexPath
中,您显示视图控制器以请求图像和标题,然后在该视图控制器中声明一个委托或完成处理程序,当用户在选择图像和标题的视图控制器中按“完成”或“保存”时,然后调用委托或完成处理程序,然后告诉原始视图控制器和单元格添加您刚刚创建的项并重新加载collectionView。这是非常标准的东西,同样的模式你需要学习如何使用,因为大多数应用程序在每个应用程序中使用同样的模式100次。我可以从Objective-C向你展示,但我不会浪费时间来展示这是一种快速的方式。如果你需要更多的帮助,请告诉我。祝你好运


哦,是的,为了将来的参考,最好坚持委托,因为当您遇到嵌套完成的情况时,使用完成处理程序会变得非常棘手,并且仍然需要维护对控制器的弱化然后强化的引用。在对“自我”进行两级削弱和施压后,系统将开始随机释放控制器。坚持委派。

这是你的全部代码吗?谷歌“iOS事件通信,如委派”委派回viewController,弹出一个模式以获取所需信息,然后创建单元格。@hecroge这只是我的代码单元格,应该可以在末尾自定义。你能发布你的全部代码吗?好的,一定要看一些关于这个主题的教程。现在我的'UICollectionView'没有
didSelectItemAtIndexPath
函数,你能看看我最近的问题吗?我现在有一个带有
textfield
的弹出屏幕,但我真的不知道如何将
textfield
链接到我的
单元格
@Chris也许我只是链接到你同样的东西,但在objective-c中,你就明白了。我不会用斯威夫特写的,我没有时间。稍后我将通过我自己的代码将其链接到您,以便您了解如何在collectionviewcells中操作从textfields到UI开关的任何字段类型,并跟踪它们的数据,使其保持在应有的位置,以满足apple对cell resuse的要求。没有一个好的来源,所以这将有助于任何人。我以后再做