ios - 用表格视图单元格 SWIFT 中的图像制作列表的正确方法
问题描述
我目前有一个 UITableView,其中每个单元格都包含一个用户列表。我目前使用 UITextView 设置它,并在每个名称后换行。然后我根据组中的人数设置单元格高度。这很好,但现在我想添加每次使用的个人资料图片。这是我提出的两种可能的解决方案。
- 每个表格视图单元格内的表格视图
- 使用这样的方法将图像添加为文本并保留当前的文本视图。我相信这将是更好/更有效的选择。
这两个或其他选项中的哪种方法是正确的/或最有效的方法。
更新:我正在尝试从下面实现一个解决方案,这是我尝试过的,但是在运行时我什么也没看到
创建用户视图类
import UIKit
@available(iOS 9.0, *)
class UserView: UIStackView {
var name: String?
var image: UIImage? // OR var imageName: String?
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
private func setup() {
axis = .vertical
let imageView = UIImageView(image: image)
let nameLabel = UILabel()
nameLabel.text = name
addArrangedSubview(imageView)
addArrangedSubview(nameLabel)
}
}
行在索引路径的单元格中的代码
cell.mainStackView.frame = CGRect(x: 0, y: 0, width: cell.cellColor.frame.width, height: cell.cellColor.frame.height)
for i in 0..<joinedArray.count {
let user = UserView()
user.name = joinedArray[i]
cell.mainStackView.addArrangedSubview(user)
}
解决方案
我更喜欢 UITableViewCell 和 UIStackView 内的 UIStackView 作为每个用户条目的子视图
像下面提到的东西
class UserView: UIStackView {
var name: String?
var image: UIImage? // OR var imageName: String?
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
private func setup() {
axis = .vertical
let imageView = UIImageView(image: image)
let nameLabel = UILabel()
nameLabel.text = name
addArrangedSubview(imageView)
addArrangedSubview(nameLabel)
}
}
推荐阅读
- java - java中的Eclipse配音器
- r - 尝试为 nfl_elo 加载 CSV 文件;缺少参数“dat”,没有默认值
- android - 如何给我的图像添加点击效果?
- css - Jekyll 不从 gh-pages 渲染 css
- java - java中通过接口实现多重继承
- ubuntu - 在 ubuntu 上使用终端列出当前目录中所有可见和隐藏的目录类型(前面带有点)
- c# - ACE OLEDB 12.0 属性 HRD=NO 不起作用
- python-3.x - 我的 if-else 语句和变量赋值有什么问题?
- python - Flake8 和 atom 的问题
- python - Python 对 DataFrame 中的列进行排序以进行 OLS 回归