swift - 如何在集合视图中使用不同类型的单元格?
问题描述
我正在尝试创建一个关于社交网络的应用程序。在那里,用户可以发送两种不同类型的帖子(如图片帖子或文本帖子)。用户在另一个控制器中选择他们的帖子类型并创建他们的帖子。我创建了两个不同的单元格,并想用 if 语句调用 cellForItemAt。问题是我如何知道用户对帖子类型的选择?
// there is users post type selection with button
let writeButton: UIButton = {
let wButton = UIButton()
wButton.layer.cornerRadius = 7
wButton.setBackgroundImage(#imageLiteral(resourceName: "writing"), for: .normal)
wButton.setTitle("Writing", for: .normal)
wButton.setTitleColor(UIColor.white, for: .normal)
wButton.titleLabel?.font = UIFont(name: "AvenirNext-DemiBoldItalic", size: 18)
wButton.heightAnchor.constraint(equalToConstant: 60).isActive = true
wButton.layer.borderWidth = 1.5
wButton.addTarget(self, action: #selector(tappedWriteButton), for: .touchUpInside)
return wButton
}()
@objc func tappedWriteButton () {
let writePost = WriteTitlePost()
navigationController?.pushViewController(writePost, animated: true)
}
let mediaButton: UIButton = {
let mButton = UIButton()
mButton.layer.cornerRadius = 7
mButton.backgroundColor = UIColor.orange
mButton.setBackgroundImage(#imageLiteral(resourceName: "photography"), for: .normal)
mButton.setTitle("Media Post", for: .normal)
mButton.setTitleColor(UIColor.white, for: .normal)
mButton.titleLabel?.font = UIFont(name: "AvenirNext-DemiBoldItalic", size: 18)
mButton.layer.borderWidth = 1.5
mButton.layer.borderColor = UIColor.orange.cgColor
mButton.heightAnchor.constraint(equalToConstant: 60).isActive = true
mButton.addTarget(self, action: #selector(tappedMediaButton), for: .touchUpInside)
return mButton
}()
@objc func tappedMediaButton() {
let layout = UICollectionViewFlowLayout()
let mediaPost = MediaPost(collectionViewLayout: layout)
let navController = UINavigationController(rootViewController: mediaPost)
present(navController, animated: true, completion: nil)
}
解决方案
推荐阅读
- mysql - SQL - 有没有办法检测在与其他列的值分组的列中是否不存在值?
- snowflake-cloud-data-platform - 在雪花中创建日期分区外部表
- c# - 我需要帮助使用 C# 将代码插入到 ASP.NET 页面的末尾
- typescript - 我无法删除错误“类型'用户| null'不可分配给类型'用户'。类型'null'不可分配给类型'用户'”
- c++ - 如何在 macOS Catalina 上升级 GCC
- excel - 具有多个范围的 Excel VBA Countif
- swift - WatchOs 上的 Coreml EXC_BAD_ACCESS (code=1, address=0x7d66228) 错误
- css - #CSS 中的属性?这是什么意思?
- angular - 从单个服务订阅、获取和传播 Firebase 自定义声明到 Angular 组件的正确方法
- android - 更改 Theme.MaterialComponents 的 TextInputLayout.OutlinedBox 的光标颜色