gpt4 book ai didi

swift - 使用堆栈 View 将图像添加到 TableView 单元格问题

转载 作者:行者123 更新时间:2023-11-30 10:38:24 26 4
gpt4 key购买 nike

在我的原型(prototype)单元中,我有一个水平堆栈 View ,我将其连接到我的 UITableViewCell,并在我的 UITableViewCell 中定义了一个更新函数,该函数将多个图像添加到堆栈 View 中,我在 TableViewController cellForRowAt 中调用了该函数,但没有任何反应。

//inside UITableViewCell  
@IBOutlet weak var lineStack: UIStackView!

func update(_ imageName: String){
let numberOfCopies = Int(deviceWidth/50)
let startX = (Int(deviceWidth) - (numberOfCopies*50))/2
xValue = xValue + startX
let image = UIImage(named: imageName)

for _ in 1...Int(numberOfCopies) {
xValue = xValue + heightValue
let imageView = UIImageView(image: image)
imageView.frame = CGRect(x: xValue , y: 0, width: widthValue, height: heightValue)
lineStack.addSubview(imageView)
}
}

//inside TableViewController

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Line", for: indexPath) as! LineTableViewCell
let imageName = imagesName[indexPath.row]
cell.update(imageName)
return cell
}

最佳答案

您的帖子表明您希望图像为 50 x 50 点...使用 .addArrangedSubview() 自动布局约束:

class TestCell: UITableViewCell {

@IBOutlet var lineStack: UIStackView!

func update(_ imageName: String) {
let numberOfCopies = Int(deviceWidth/50)
let image = UIImage(named: imageName)

for _ in 1...Int(numberOfCopies) {
let imageView = UIImageView(image: image)
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.widthAnchor.constraint(equalToConstant: 50).isActive = true
imageView.heightAnchor.constraint(equalTo: imageView.widthAnchor).isActive = true
lineStack.addArrangedSubview(imageView)
}
}
}

编辑示例结果,堆栈 View 水平居中:

enter image description here

堆栈 View 设置为:

Axis: Horizontal
Alignment: Fill
Distribution: Fill
Spacing: 0

这是带有约束的布局:

enter image description here

请注意,堆栈 View 的宽度约束为 10,但其优先级为 250 ...这允许堆栈 View 水平拉伸(stretch),同时保持 IB 满足受约束。

关于swift - 使用堆栈 View 将图像添加到 TableView 单元格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57377036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com