我正在开发一个即时通讯应用程序。用户可以发送短信,为此我在自定义表格 View 单元格中使用了 UITextView。用户应该能够发送各种多媒体数据,例如图像、文档和视频。
在我的表格 View 单元格中,我在 stackView 中有一个 textView 和一个 UIImageView,我可以发送相应类型的数据。如果没有文本,我会隐藏 TextView。如果没有图像,我隐藏图像。
问题是:要扩展应用程序,我必须为文档添加一个新容器,为视频添加一个新容器,为音频文件添加另一个容器,并隐藏所有其他未添加数据的容器。这是一个垃圾解决方案,但它是我找到的唯一解决方案。
从后端知道发送的数据类型后,我如何以编程方式添加一个容器 View ,并在其中进行现场设置?我正在考虑使用默认的 textView 和一个空的 View,并在 cellForRowAt 中添加所需的元素。
最佳答案
我会尝试创建几个单元格,您可以通过检查条件在 cellForRowAt 中将其出队,例如:
if userPost.images != nil {
let cell = tableView.dequeueReusableCell(withReuseIdentifier: "Identifier1", for: indexPath) as! UITableViewCell
return cell
} else {
let cell = tableView.dequeueReusableCell(withReuseIdentifier: "Identifier2", for: indexPath) as! UITableViewCell
return cell
}
使用此解决方案,您可以创建一个单元格,该单元格非常适合一个用户发送给另一个用户的数据。只需检查您想要的任何条件并返回相应的单元格。
希望对您有所帮助!
关于ios - 以编程方式在 UITableViewCell 底部添加 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55262621/