ios - 将项目水平附加到 tableView 单元格中,但不会填满所有空间
问题描述
我有一个想要实现的特定设计,对我来说似乎并不复杂,但我正在努力实现它。
首先设计看起来像这样:
所以,我有一个包含图片的项目的表格视图,然后是标题,然后是三个项目的集合,这些项目将是 ImageViews。
所有这些都在一个单元格和一个 stackView 内。
我尝试制作一个水平堆栈视图并设法正确附加我的项目,但它在设计方面出现了可怕的错误,因为我的图像视图一直水平拉伸。我想这是不可能不拉伸这些物品的。
我还尝试在表格视图中添加一个集合视图,但发现对于这个基本的东西来说这是非常复杂的(我猜应该是这样)。然后,我来了。
这是我的代码,我被困在哪里:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = debateList.dequeueReusableCell(withIdentifier: "itemsBox", for: indexPath) as! ItemBox
// Make a variable with 3 participants
let participants = tableView[indexPath.row].participants?.prefix(3)
// iterate over them and adding them to anything that can be doable
participants?.forEach { participant in
let imageView = UIImageView()
let imageUrl = URL(string: participant.imageURL)
imageView.kf.setImage(with: imageUrl)
// Here add item to something
}
return cell
}
我被困住了,对于这么小的东西来说太久了。我猜我对自己不知道该怎么做有点不高兴。
解决方案
首先,如果它们是 3 个静态图像,那么最好将它们制作在内部设计中,并将图像 url 分别分配给它们的网点
其次,对于您当前的工作,您需要添加一个宽度约束(关于高度,当它是水平堆栈时,它们将适合所有堆栈高度),例如
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.widthAnchor.constraint(equalToConstant: 50).isActive = true
推荐阅读
- javascript - 从进入信息窗口 Google 地图对象的 DOM 字符串执行函数时出现问题
- jquery - 带有 json 数据和 jquery 的 chart.js - 错误:-(
- node.js - 在树莓派上更新 nodejs 和 node-red 的当前正确方法?
- javascript - 在更新页面的 DOM 时,我在 JavaScript 中的循环变得越来越慢
- python - 具有多个记录路径的 json_normalize
- angular - 如何正确创建和解析 Observable 的 Observable (RxJS)
- android - 无法在所有设备上使 HTML 表格的宽度一致
- python-3.x - 为什么在我调用数据帧上的值之前会有熊猫数据帧泄漏?
- arrays - 使用array.map在打字稿中使用数组对象数组的键
- android - 当我执行应用程序时,预览中的 Android 布局不同