首页 > 解决方案 > 用表格视图单元格 SWIFT 中的图像制作列表的正确方法

问题描述

我目前有一个 UITableView,其中每个单元格都包含一个用户列表。我目前使用 UITextView 设置它,并在每个名称后换行。然后我根据组中的人数设置单元格高度。这很好,但现在我想添加每次使用的个人资料图片。这是我提出的两种可能的解决方案。

  1. 每个表格视图单元格内的表格视图
  2. 使用这样的方法图像添加为文本并保留当前的文本视图。我相信这将是更好/更有效的选择。

这两个或其他选项中的哪种方法是正确的/或最有效的方法。

更新:我正在尝试从下面实现一个解决方案,这是我尝试过的,但是在运行时我什么也没看到

在 Storyboard 中添加堆栈视图 在此处输入图像描述

创建用户视图类

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)
        }

标签: iosswiftuitableviewuicollectionviewuistackview

解决方案


我更喜欢 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)
    }
}

推荐阅读