用表格视图单元格 SWIFT 中的图像制作列表的正确方法
Posted
技术标签:
【中文标题】用表格视图单元格 SWIFT 中的图像制作列表的正确方法【英文标题】:Right way to make a list with images inside a tableview cell SWIFT 【发布时间】:2018-08-13 20:56:21 【问题描述】:我目前有一个 UITableView,其中每个单元格都包含一个用户列表。我目前使用 UITextView 设置它,并在每个名称后换行。然后我根据组中的人数设置单元格高度。这很好,但现在我想添加每次使用的个人资料图片。这是我提出的两种可能的解决方案。
-
每个表格视图单元格内的表格视图
使用this 之类的方法将图像作为文本添加并保留当前的文本视图。我相信这将是更好/更有效的选择。
这两个或其他选项中的哪种方法是正确/或最有效的方法。
更新:我正在尝试从下面实现一个解决方案,这是我尝试过的,但运行时我什么也没看到
在 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)
【问题讨论】:
您希望在列表中支持的最大用户数是多少? 上限可能在 20 左右 不显示代码图片。显示代码。 @matt 谢谢我已经相应更新了 【参考方案1】:我更喜欢 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)
【讨论】:
你能多解释一下我将如何在我的项目中实现它,我真的不明白如何使用它。谢谢,感谢您的回复。 @user6520705 在您的 TableViewCell 中添加 UIStackView(即 mainStackView)。现在为每个用户以编程方式将 UserView UIStackView 添加到 mainStackView 在情节提要中,我向单元格添加了堆栈视图。然后我创建了一个类 UserView。在我的 cellforrowatindexpath 中,我循环遍历我的用户数组,并为每个用户创建一个新的 UserView 并执行 mainstackview.append 新的 UserView 但是当我构建和运行时我什么都看不到 @user6520705 如果还没有解决,这里是完整的解决方案gist.github.com/Satish/f973732730a24e08a4dd274d86c9e2d2【参考方案2】:您可以尝试将UICollectionView
放入UITableViewCell
中,而不是将UITableView
放入UITableViewCell
。从技术上讲,它是相同的,但是通过集合视图,您可以在不同布局中显示图像的方式上获得更多功能(假设每个UICollectionViewCell
为每个图像分别使用UIImageView
)。 Ash Furrow 对此有一个非常好的blog post 以及相应的GitHub rep。
【讨论】:
以上是关于用表格视图单元格 SWIFT 中的图像制作列表的正确方法的主要内容,如果未能解决你的问题,请参考以下文章
表格视图单元格中的滚动视图将无法正确显示图像,并且在 swift 4 中的分页模式下有一个额外的页面
iOS - 使用 Swift 在每个表格视图单元格中获取 JSON 提要